gpt4 book ai didi

java - setVisibility 列表

转载 作者:行者123 更新时间:2023-12-01 15:21:43 25 4
gpt4 key购买 nike

我得到了这段代码:

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。

那么其他人还有其他答案吗?或者也许有人擅长文本观察器,你可以制作/帮助我制作一个。大多数时候,互联网上的文本观察器示例对我来说太复杂了。我真的很感激。

编辑2:

我仍在弄清楚这个选项/功能,但是与 adapter.getfilter(); 一起使用怎么样?

最佳答案

尝试使用两个列表,一个包含所有结果,另一个包含搜索结果。始终显示第二个列表,如果要显示整个列表,只需将第二个列表指向第一个列表即可。像这样的东西:

private List<Item> displayData = new ArrayList<Item>();

public void cap_search(){
EditText search = (EditText) findViewById(R.id.search);
String str_search = null;

str_search = search.getText().toString();
displayData.clear();
if (str_search == null || str_search.equals("")) {
displayData.addAll(data);
} else {
for (int i = data.size()-1; i >= 0; i--){
if (data.get(i).getCaption().contains(str_search)){
displayData.add(data.get(i));
}
}
}
adapter = new ItemListAdapter(this, displayData);
setListAdapter(adapter);
}

关于java - setVisibility 列表<item>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com