一直試圖做同樣的位置: https://gist.github.com/susemi99/a45ca534cc109271f34e6c992f69f048我如何正確addTextChangeListener在Android的XML
所以我有我的EditText在XML:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="test.edu.MyViewModel"/>
<variable type="MyViewModel" name="viewModel"/>
</data>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
(...)
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:addTextChangeListener="@{viewModel.myTextWatcher}"/>
(...)
而且我有TextWatcher在MyViewModel:
public class MyViewModel extends BaseObservable {
public TextWatcher myTextWatcher = new TextWatcher(){
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable editable) {}
};
}
我認爲,我已經做到了同中提到的鏈接,但是當我嘗試編譯,我得到:
無法在android.widget.EditText上爲參數類型爲android.text.TextWatcher的屬性'app:addTextChangeListener'找到setter。
您能否給我一些關於這裏有什麼問題的提示?我認爲我提到的代碼是編譯的,但我不是100%確定的。
,但我知道,因爲我使用MVVM,我想以避免ViewModel中的findViewById。根據Google的說法:「ViewModel的唯一責任是管理用戶界面的數據,它永遠不應該訪問你的視圖層次結構(...)」 – LLL