1

Я быстро понимаю, что это будет проблемой на Android с большим количеством шаблонов, и когда я начал реорганизовывать свой код, я сейчас эффективно пишу свой собственный [email protected] ssed версия привязки данных. Я не хочу тратить больше времени на его обобщение и заново изобретать колесо. Мне было интересно, есть ли хорошие решения там, как сторонние библиотеки, которые использует сообщество.Связывание данных: модель представления и просмотр, сторонние библиотеки в Android

Я нашел robo-привязки, и мне очень понравилась их презентация (сосредоточиться на модулях, проверяющих их собственный материал, надежность и т. Д.), Но похоже, что они остаются довольно маленькими, и я беспокоюсь о проблемах с их библиотекой и общими поддержка/эволюция в будущем.

Другие библиотеки пользователей используют?

Спасибо.

+0

Вы никогда не услышите много о MVVM на Android. Робобиндинг кажется самым зрелым из моего быстрого взгляда. Xamarin.Android может быть способом пойти, поскольку этот мир использовал MVVM в течение длительного времени! – Dori

+0

Вы должны рассмотреть Аннотированный адаптер: https://github.com/sockeqwe/AnnotatedAdapter. Он автоматически связывает представления в RecyclerView. –

ответ

3

Android M предоставит мощную библиотеку для привязки данных!

Доступно сейчас в dev-preview version.

Это выглядит удивительно внутри xml и java файлов:

<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@{user.firstName}" 
    /> 

Java боб:

public class User { 
    private final String firstName; 
    private final String lastName; 
    public User(String firstName, String lastName) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 
    public String getFirstName() { 
     return this.firstName; 
    } 
    public String getLastName() { 
     return this.lastName; 
    } 
} 

Переплет:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity); 
    User user = new User("Test", "User"); 
    binding.setUser(user); 
} 
+0

Это замечательно, спасибо, я должен изучить это! Знаете ли вы, будет ли режим совместимости, где вы можете использовать его даже для телефонов, которые не находятся на M? – Creos

+0

Ну ... Я думаю, что они, должно быть, считали обратную совместимость ... Надеюсь, что это работает и с предыдущими версиями ... – Salmaan

+2

это библиотека поддержки, поэтому вы можете использовать ее со всеми версиями платформы Android назад toAndroid 2.1 (уровень API 7 +) (Y) – Salmaan