2016-08-11 17 views
0

私はAndroidアプリケーションでデータバインディングを使用していますが、私は双方向データバインディングを実装しています。 私はそれがシンボル変数bound_observableを見つけることができないと言うシンボル変数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); 
    } 
} 

、このよう@BindingAdapter注釈を使用してカスタム属性を作成し、私は一種の新しいデータバインディングにしていますので、私を助けて。

+0

ポストあなたのXMLレイアウトコードのように結合双方向を所有しています。 – iRuth

答えて

1

リソースにR.id.bound_observableと宣言しましたか?

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

任意の方法は、データバインドライブラリの提供の新しいバージョンは `bound_observable`を示し、この

android:text="@={viewModel.bindableString}" 
関連する問題