@ जॉर्ज माउंट सही है, आपको अपने लेआउट एक्सएमएल में एक हैंडलर जोड़ना होगा जो आपके मॉडल या हैंडलर क्लास (जिसे आप इसे कहते हैं) में परिभाषित किया गया है। एक पूर्ण विकसित उदाहरण के लिए इस प्रश्न के लिए मेरा उत्तर में
देखो:
उदाहरण::
public class AmanteEditModel extends BaseObservable {
private String senhaConfirm;
@Bindable
public String getSenhaConfirm() {
return senhaConfirm;
}
public void setSenhaConfirm(String senhaConfirm) {
this.senhaConfirm = senhaConfirm;
notifyPropertyChanged(BR.senhaConfirm);
}
// Textwatcher Reference: http://developer.android.com/reference/android/text/TextWatcher.html
public TextWatcher getMyEditTextWatcher() {
return new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
// Important! Use the property setter, otherwhise the model won't be informed about the change.
setSenhaConfirm(s);
}
};
}
}
अपने लेआउट एक्सएमएल में
Two way databinding with Android Databinding Library
यहाँ है कि इसका जवाब से उदाहरण दिया गया है इस पर EditText बदलें:
<EditText
android:id="@+id/amante_edit_senha_confirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:hint="Confirme a senha"
android:inputType="textPassword"
android:maxLines="1"
android:text="@{model.senhaConfirm}"
app:addTextChangeListener="@{model.myEditTextWatcher}"
/>
के नामस्थान के लिए देखें addTextChangeListener। यह विधि एंड्रॉइड के माध्यम से उपलब्ध नहीं हो सकती है: नेमस्पेस, इसलिए मैं ऐप का उपयोग कर रहा हूं: यहां। आप बाइंडिंग का उपयोग भी कर सकते हैं: बाइंडिंग को और स्पष्ट करने के लिए।
तो अपने एक्सएमएल नामस्थान को
xmlns:app="http://schemas.android.com/apk/res-auto"
या
xmlns:bind="http://schemas.android.com/apk/res-auto"
जोड़ने के लिए मौका न चूकें।
यह समाधान आपके इनपुट में सही श्रोताओं को प्रदान करने के बाद, सभी इनपुट नियंत्रणों, कस्टम शामिल करने के लिए काम करता है।
TextWatcher Reference
स्रोत
2015-07-28 06:34:23
फोन करके हम्म यह काम करना चाहिए। यह एक आईडीई हाइलाइट बग हो सकता है। क्या आपने संकलन करने की कोशिश की? – yigit
मैंने आज सीखा, कि मुझे हमेशा संकलन करने की कोशिश करनी चाहिए :) यह काम करता है! धन्यवाद, यज्ञ! – prograde
लेकिन, हम्म, यह foo.getBar() विधि को सही स्थिति में सेट करने के लिए कॉल करता है। लेकिन यह foo.setBar() विधि को कभी भी कॉल नहीं करता है, इसलिए मेरे कोड में मान कभी अपडेट नहीं होता है। क्या इसे अभी भी SeekBarChangeListener की आवश्यकता है, या क्या? – prograde