我是Android开发的新手,我已经在一个关于自定义ListView
的网站上的示例的帮助下编写了一些代码,现在我想附加一个ListView
EditText
过滤文本并在ListView
中仅显示我写的内容。
目前,当我输入任何内容时ListView
变为空白且没有显示任何内容,但当我删除输入时,ListView
会恢复原始项目。
这是我的适配器类:
public class EntryAdapter extends ArrayAdapter<Item> {
private Context context;
private ArrayList<Item> items;
private LayoutInflater vi;
public Context conx;
public EntryAdapter(Context context, ArrayList<Item> 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);
有人能告诉我我做错了什么吗?我曾尝试过观看几个教程,但没有一个能够向我展示如何实现它,我实现了它但它不起作用。任何想法,我可能会失踪..?