2016-08-11 4 views
0

내 안드로이드 앱에서 데이터 바인딩을 사용하고 있습니다. 양방향 데이터 바인딩을 구현 중입니다. 는이 같은 주석 @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 레이아웃 코드처럼 바인딩 양방향을 소유하고 있습니다. – iRuth

답변

1

리소스에 R.id.bound_observable을 선언 했습니까?

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

어떤 방법, 데이터 바인딩 라이브러리 제공의 새로운 버전은`bound_observable`을 보여줍니다이

android:text="@={viewModel.bindableString}" 
관련 문제