我有一个包含ListView和EditText的片段,我在编辑文本中添加了textWatcher,以在文本更改后执行某些操作,但是它不起作用,什么也没发生。
我的代码:
public class crafts extends Fragment {
EditText iSearch;
View V;
TextWatcher textWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
Log.d("Enter AfterTextChanges","WORKS!");
String text = iSearch.getText().toString().toLowerCase(Locale.getDefault());
filter(text);
}
};
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
V = inflater.inflate(R.layout.fragment_crafts, container, false);
iSearch =(EditText)V.findViewById(R.id.iSearch);
iSearch.addTextChangedListener(textWatcher);
list=(ListView)V.findViewById(R.id.list);
return inflater.inflate(R.layout.fragment_crafts, container, false);
}
当文本更改时,我尝试在Android监视器上进行打印,以查看是否发生了某些事而没有结果。
最佳答案
尝试将您的onCreateView
更改为此:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
V = inflater.inflate(R.layout.fragment_crafts, container, false);
iSearch = (EditText) V.findViewById(R.id.iSearch);
iSearch.addTextChangedListener(textWatcher);
list = (ListView) V.findViewById(R.id.list);
return V;
}