当前位置:  开发笔记 > 编程语言 > 正文

将TextWatcher与自定义适配器连接以通过EditText过滤文本

如何解决《将TextWatcher与自定义适配器连接以通过EditText过滤文本》经验,为你挑选了0个好方法。

我是Android开发的新手,我在一个关于自定义的网站的示例的帮助下编写了一些代码ListView,现在ListView我希望附加一个EditText过滤文本并显示在ListView我写的内容中.

目前,当我输入任何内容时,ListView空白并且没有显示,但是当我删除输入时,ListView恢复原始项目.

这是我的适配器类:

public class EntryAdapter extends ArrayAdapter {

     private Context context;
     private ArrayList items;
     private LayoutInflater vi;
     public Context conx;

     public EntryAdapter(Context context, ArrayList items) {
          super(context,0, items);
          this.context = context;
          this.items = items;
          vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     }

这是我为此插入的数据 main-class

  items.add(new SectionItem("letters"));
  items.add(new EntryItem("a","subtitle","image"));
  items.add(new EntryItem("b","subtitle","image"));

这是我的textWatcher,我创建的一个简单的:

inputSearch = (EditText) findViewById(R.id.inputSearch);
inputSearch.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
        // When user changed the Text
        StartClass.this.adapter.getFilter().filter(cs);
    }

    @Override
    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                  int arg3) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub
    }
});

并在这里应用adapter和设置listview

EntryAdapter adapter = new EntryAdapter(this, items);
x = adapter;
  listview.setAdapter(adapter);

有人能告诉我我做错了什么吗?我试过看几个教程,但没有一个好的向我展示如何实现它,我实现了它但它不起作用.我有什么想法可能会缺少..?

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有