2016-08-11 60 views
0

我在我的android應用程序中使用數據綁定,我正在實現雙向數據綁定。 我創建使用註釋@BindingAdapter這樣的自定義屬性,找不到符號變量bound_observable

@BindingAdapter({"app:bindingText"}) 
public static void bindEditText(EditText view, final BindableString bindableString) { 

    Pair<BindableString, SimpleTextWatcher> pair = (Pair) view.getTag(R.id.bound_observable); 
    if (pair == null || pair.first != bindableString) { 
     if (pair != null) { 
      view.removeTextChangedListener(pair.second); 
     } 
     SimpleTextWatcher watcher = new SimpleTextWatcher() { 

      @Override 
      public void onTextChanged(String newValue) { 
       bindableString.set(newValue); 
      } 
     }; 
     view.setTag(R.id.bound_observable, new Pair<>(bindableString, watcher)); 
     view.addTextChangedListener(watcher); 
    } 
    String newValue = bindableString.get(); 
    if (!view.getText().toString().equals(newValue)) { 
     view.setText(newValue); 
    } 
} 

它說找不到符號變量bound_observable,我是一種新的數據綁定,所以幫我。

+0

安置自己的XML佈局代碼顯示'bound_observable'結合。 – iRuth

回答

1

您是否在資源中聲明R.id.bound_observable

<resources> 
    <item name="R.id.bound_observable" type="id" /> 
</resources> 

任何方式,數據綁定庫提供的新版本擁有兩路像這樣

android:text="@={viewModel.bindableString}"