1

我从以下字符串显示一个列表视图:

String[] values = new String[] { test1, test2, test3 };

变量:

private String test1 = "test";
private String test2 = "test";
private String test3 = "test3";

现在我不想在我的列表视图中显示包含“test”的字符串。像这样:

if (String == "test") {
*don't show in ListView*;}

如果它们包含“test”,我希望它一次测试所有字符串

这怎么可能?

编辑:这里是适配器代码:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values);
    listView.setAdapter(adapter);
4

3 回答 3

2

是的...

if (values[i].equals("test")) // i being the iterator of your for-loop

或者

if (values[i].contains("test"))

包含虽然是一个慢(er)字符串函数。

不过,您可能想使用 ArrayList... 这样您就可以将所有这些对象添加到数组列表中,然后遍历它...并随时删除它们...

// Do something to add all items to your array list
...
// Iterate through the list, removing what doesn't need to be there
for (int i = 0; i < arrayList.size(); i++){
    if (arrayList.get(i).contains("test"))
        arrayList.remove(i);
}

...然后将 'arrayList' (或您所称的任何名称)设置为适配器的字符串列表。如果您使用相同的构造函数,它将看起来像这样......

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, arrayList.toArray());
于 2012-08-07T15:30:56.583 回答
1

您应该在 ListView 上使用过滤器。看看这些例子:

(简单迭代)http://androidsearchfilterlistview.blogspot.com/2011/06/android-custom-list-view-filter.html (getFilter())使用自定义(对象)适配器过滤 ListView

像其他人发布的一样,您使用 比较 String 对象.equals(),但如果您尝试仅显示某些项目,ListView则应使用getFilter()我发布的链接中描述的方法。

编辑:我发现你是一个很好的例子。

于 2012-08-07T15:32:35.087 回答
1

一直以来,如果您想比较 2 个字符串,请使用equals方法

阅读有关 equals() 方法的信息

于 2012-08-07T15:34:12.407 回答