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"))

ただし、containsはslow(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()

編集:私はあなたに良いSOの例を見つけました。

于 2012-08-07T15:32:35.087 に答える
1

常に、2つの文字列を比較したい場合は、equalsmethodeを使用してください

equals()メソッドについてこれを読んでください

于 2012-08-07T15:34:12.407 に答える