我有一个包含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;
}

09-09 21:21
查看更多