Android ListView:不显示所有字符串

时间:2012-08-07 15:27:44

标签: android string listview

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

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

变量:

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

现在我不想在listview中显示包含“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);

3 个答案:

答案 0 :(得分:2)

...烨

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

OR

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

contains是一个慢(呃)字符串函数。

你可能想要使用一个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());

答案 1 :(得分:1)

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

(简单迭代)http://androidsearchfilterlistview.blogspot.com/2011/06/android-custom-list-view-filter.html (getFilter())Filtering ListView with custom (object) adapter

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

编辑:我找到了一个很好的例子。

答案 2 :(得分:1)

所有时间,如果你想比较2个字符串使用equals方法

read this about The equals() method