Ben Bağlama veri kullanıyorum ve basit bir düzenle çok basit bir sınıfAndroid Veri Bağlama ile kullanıcı arabirimindeki bir nesne nasıl güncellenir?
public class ViewUser extends BaseObservable {
private String name;
@Bindable
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
notifyPropertyChanged(BR.name);
}
}
oluşturduk
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="user"
type="com.example.ViewUser" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:lines="3"
android:text="@{user.name}" />
</LinearLayout>
</layout>
Ben nesneyi, herhangi bir sorun olmadan UI güncellemeleri güncelleme
ama eğer ben EditText'in değerini UI'den değiştirin ve daha sonra DataBindingUtil .getUser() öğesini kullanarak kullanıcıyı edinin, güncellenmiş değere sahip değil. Mülkün otomatik olarak güncellenmesi mümkün mü yoksa TextWatcher'ın onTextChanged gibi bir etkinliği kullanarak nesneyi güncellemek zorunda mıyım?
AFAIK, bunu kendiniz halletmelisiniz. Örneğin, bu durumda, veri bağlama istediğiniz şeyi yaptıysa, sonsuz bir döngü ('EditText' çağrılarını setUser() 'olarak adlandırırsınız. 'setUser()' hangi ...). Ayrıca, herkesin istediği gibi tuş vuruşu temelinde güncellemesini istemediğinden (TextWatcher ile ima ettiğiniz gibi) istediğinizi seçmeniz gerektiğini aklınızda bulundurun. – CommonsWare
Bu yardımcı olabilir: http://stackoverflow.com/questions/33362533/create-two-way-binding-with-android-data-binding – FWeigl
Etkinliğinizdeki güncelleştirilmiş modele nasıl erişirsiniz? Etkinliğinizi görmeyi çok isterdim. –