Skip to content

Most visited

Recently visited



public interface InverseBindingListener


A listener implemented by all two-way bindings to be notified when a triggering change happens. For example, when there is a two-way binding for android:text, an implementation of InverseBindingListener will be generated in the layout's binding class.

 private static class InverseListenerTextView implements InverseBindingListener {
     public void onChange() {

A BindingAdapter should be used to assign the event listener. For example, android:onTextChanged will need to trigger the event listener for the android:text attribute.

 @InverseBindingAdapter(attribute = "android:text", event = "android:textAttrChanged")
 public static void captureTextValue(TextView view, ObservableField<CharSequence> value) {
     CharSequence newValue = view.getText();
     CharSequence oldValue = value.get();
     if (oldValue == null) {
     } else if (!contentEquals(newValue, oldValue)) {
 @BindingAdapter(value = {"android:beforeTextChanged", "android:onTextChanged",
                          "android:afterTextChanged", "android:textAttrChanged"},
                          requireAll = false)
 public static void setTextWatcher(TextView view, final BeforeTextChanged before,
                                   final OnTextChanged on, final AfterTextChanged after,
                                   final InverseBindingListener textAttrChanged) {
     TextWatcher newValue = new TextWatcher() {
         public void onTextChanged(CharSequence s, int start, int before, int count) {
             if (on != null) {
                 on.onTextChanged(s, start, before, count);
             if (textAttrChanged != null) {
     TextWatcher oldValue = ListenerUtil.trackListener(view, newValue,;
     if (oldValue != null) {


Public methods

abstract void onChange()

Notifies the data binding system that the attribute value has changed.

Public methods


void onChange ()

Notifies the data binding system that the attribute value has changed.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)