【发布时间】:2011-04-21 03:40:16
【问题描述】:
我试图从我的 EditText 框中过滤我的 ListView,但目前它不起作用。
我有一个 ListView 可以正确获取数据,并使用 ArrayAdapter 类和我自己的 ArrayList 类将它们添加到我自己的 ListView 中。例如,当我输入“表格”时,我希望它从我的 ListView 中加载的标题中排序,然后它应该向我显示剩下的项目和匹配的表格。
我当前的代码:
private ArrayList<Order> orders; /* ArrayList class with my own Order class to
define title, info etc. */
private OrderAdapter adapter; //Own class that extends ArrayAdapter
orders = new ArrayList<Order>();
adapter = new OrderAdapter(this, R.layout.listrow, orders); /* listrow defining a
single item in my ListView */
setListAdapter(adapter); //Set our adapter to a ListView
search.addTextChangedListener(filterTextWatcher); //search is my EditText
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
adapter.getFilter().filter(s); //Filter from my adapter
adapter.notifyDataSetChanged(); //Update my view
}
};
好的,那我该如何实现呢?当我在 EditText 框中输入一些值时,所有内容都会消失,即使有匹配项。
提前致谢,如果您需要更多代码 sn-ps 或者这个问题我不清楚,请告诉我!
【问题讨论】: