0

2 つのリスト ビューがある Android アプリを開発しています。2 番目のリスト ビューに追加する必要がある最初のリスト ビューの項目をユーザーがクリックしたとき。これは私が正しく実装したものです。しかし、私の問題は、2 番目のリスト ビューで文字列を繰り返してはならないことです。文字列 A がリスト ビュー 1 にあり、それをクリックすると、リスト ビュー 2 に移動し、もう一度文字列 A をクリックすると、メッセージが表示されます (メッセージは私が処理します)。これが私のコードです。私は何が欠けていますか?

ArrayList<String> arr2;
ArrayAdapter<String> adapter2;
arr2 = new ArrayList<String>();

lv1.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        String selected = lv1.getItemAtPosition(arg2).toString();
        arr2.add(selected);
        adapter2 =  new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, arr2);
        lv2.setAdapter(adapter2);
        adapter2.notifyDataSetChanged();
    }
});
4

5 に答える 5

3

おそらくこれでうまくいくでしょう。

String selected = lv1.getItemAtPosition(arg2).toString();



if (!arr2.contains(selected)) {

    //add item in second ListView

    arr2.add(selected);

} else {
    show popup
}
于 2013-07-15T06:02:39.400 に答える
1

ArrayList (arr2) を保存し、選択した文字列が arr2 に既に含まれているかどうかを確認することをお勧めします。

if(arr2.contains(selected)){
    //continue with something else
}else{
    //add to list and refresh Fragment
}
于 2013-07-15T06:02:47.710 に答える
1

Contains メソッドを使用し、arr2 に特定の値が存在するかどうかを確認し、false を返す場合は arr.add(selected) のみを実行します。

于 2013-07-15T06:02:57.963 に答える