android.databinding
Annotation Type InverseBindingMethod


@Target(value=ANNOTATION_TYPE)
public @interface InverseBindingMethod

InverseBindingMethod is used to identify how to listen for changes to a View property and which getter method to call. InverseBindingMethod should be associated with any class as part of InverseBindingMethods.

 @InverseBindingMethods({@InverseBindingMethod(
     type = android.widget.TextView.class,
     attribute = "android:text",
     event = "android:textAttrChanged",
     method = "getText")})
 public class MyTextViewBindingAdapters { ... }
 

method is optional. If it isn't provided, the attribute name is used to find the method name, either prefixing with "is" or "get". For the attribute android:text, data binding will search for a public CharSequence getText() method on android.widget.TextView.

event is optional. If it isn't provided, the event name is assigned the attribute name suffixed with AttrChanged. For the android:text attribute, the default event name would be android:textAttrChanged. The event should be set using a BindingAdapter. For example:

 @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);
 }
 

See Also:
InverseBindingAdapter, InverseBindingListener

Required Element Summary
 java.lang.String attribute
          The attribute that supports two-way binding.
 java.lang.Class type
          The View type that is associated with the attribute.
 
Optional Element Summary
 java.lang.String event
          The event used to notify the data binding system that the attribute value has changed.
 java.lang.String method
          The getter method to retrieve the attribute value from the View.
 

Element Detail

type

public abstract java.lang.Class type
The View type that is associated with the attribute.


attribute

public abstract java.lang.String attribute
The attribute that supports two-way binding.

event

public abstract java.lang.String event
The event used to notify the data binding system that the attribute value has changed. Defaults to attribute() + "AttrChanged"

Default:
""

method

public abstract java.lang.String method
The getter method to retrieve the attribute value from the View. The default is the bean method name based on the attribute name.

Default:
""