我有一个 ListView 填充了 ArrayAdapter 的数据,并且我实现了一个搜索功能,因为列表很长。
假设我有这个列表:
0 - 橙色 1 - 苹果 2 - 番茄 3 - 鳄鱼 4 - 火车 5 - 海龟 6 - 狗 7 - 猫
好的,现在在我用来过滤这个列表的 EditText 中,我写了一个t
. 然后,列表将是:
0 - 番茄 1 - 火车 2 - 乌龟
问题是我已经实现了一个onItemClickListener
,以便我可以根据项目访问一个页面或另一个页面,当我单击第一个( 0 - tometoe )时,它会选择列表中第一个元素的( 0 )没有过滤(0 - 橙色),当我点击第二个(1 - 火车)时,它会选择列表中第一个元素的(1)而不过滤(1 - 苹果)等等......
这是我正在使用的代码:
ListView lv = new ListView(this);
final String[] tricks;
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listviewcustom, tricks);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(android.widget.AdapterView<?> arg0, View arg1, int arg2, long arg3) {
showTrick(arg2, tricks[arg2], modality);
//Log.e("itemClickListener", String.valueOf("LISTVIEWJ " + arg2 + " - " + tricks[arg2] + " - " + modality));
}
});
searchBox.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
adapter.getFilter().filter(cs);
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
public void afterTextChanged(Editable arg0) { }
});
tricksLayout.addView(lv, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
所以我的问题是:我怎样才能让它按我的意愿工作?
谢谢你的好处!