Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

InverseBindingListener

public interface InverseBindingListener

android.databinding.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 {
     @Override
     public void onChange() {
         mObj.setTextValue(mTextView.getText());
     }
 }
 

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) {
         value.set(newValue);
     } else if (!contentEquals(newValue, oldValue)) {
         value.set(newValue);
     }
 }
 @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() {
         ...
         @Override
         public void onTextChanged(CharSequence s, int start, int before, int count) {
             if (on != null) {
                 on.onTextChanged(s, start, before, count);
             }
             if (textAttrChanged != null) {
                 textAttrChanged.onChange();
             }
         }
     }
     TextWatcher oldValue = ListenerUtil.trackListener(view, newValue, R.id.textWatcher);
     if (oldValue != null) {
         view.removeTextChangedListener(oldValue);
     }
     view.addTextChangedListener(newValue);
 }
 

Summary

Public methods

abstract void onChange()

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

Public methods

onChange

void onChange ()

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