我得到了这段代码:
public void cap_search(){
EditText search = (EditText) findViewById(R.id.search);
String str_search = null;
adapter = new ItemListAdapter(this, data);
setListAdapter(adapter);
str_search = search.getText().toString();
for (int i = data.size()-1; i >= 0; i--){
if (!data.get(i).getCaption().contains(str_search)){
data.remove(i);
}
}
}
我将解释这段代码,以及它在我的代码中的作用:
人们可以看到上限列表,他们可以检查他们拥有的所有上限。但是因为我有很多大写字母,所以我建立了一个搜索功能。因此,当他们键入:“A”时,列表应该只显示包含“A”的大写字母。直到这一切正常,现在的问题。在他们输入:“A”后,我删除了所有不包含它的项目。但是当用户删除“A”并输入“B”时,它应该检查整个列表(以及不以“A”开头的已删除列表)但它没有,因为我删除了它们。
那么是否可以使项目不可见而不是删除它们?或者也许是另一种解决这个问题的方法?
我希望它是清楚的,如果不是请说出来,那么我会尝试不同的解释。
已经谢谢了, Bigflow
编辑1:
尝试了很多答案,但我无法让它正常工作。有人有更多想法吗?
TextWatcher 看起来很酷,但对我来说太难了,这是我尝试实现它的第二个项目,但这次我无法让它工作。
我也从未使用过 SQL。
所以其他人有其他答案吗?或者也许是一个擅长 textwatcher 的人,你能做/帮我做一个吗?大多数时候,互联网上的文本观察者示例对我来说太复杂了。我真的很感激。
编辑2:
我仍在弄清楚这个选项/功能,但是使用 withadapter.getfilter();
呢?