2013-07-15 67 views
0

比較字符串我正在開發Android應用程序,其中有兩個列表視圖。當用戶單擊必須添加到第二個列表視圖的第一個列表視圖的項目時。這是我正確實施的。但我的問題是字符串不能在第二個列表視圖中重複。意思是如果字符串A在列表視圖1中有,我點擊它,它將移動到列表視圖2,如果再次點擊字符串A,它應該提示消息(消息將由我處理)。這是我的代碼。我錯過了什麼?在列表視圖中的Android

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(); 
    } 
}); 
+0

你試圖使用SET而不是簡單的數組適配器(集是不允許重複)? – sandrstar

+0

號我還沒有使用它 –

+0

我該如何使用它..? –

回答

3

可能這會奏效。

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



if (!arr2.contains(selected)) { 

    //add item in second ListView 

    arr2.add(selected); 

} else { 
    show popup 
} 
+0

謝謝先生...它的工作原理... –

+0

@如果它解決了你的問題,那麼請關閉這個問題。 –

1

我建議你保存一個ArrayList(你的arr2)並檢查arr2是否已經包含了所選的字符串。

if(arr2.contains(selected)){ 
    //continue with something else 
}else{ 
    //add to list and refresh Fragment 
} 
1

使用包含方法和檢查ARR2是否存在特定的值,如果它返回false,那麼只能執行arr.add(選擇)

2

最後,得到它....

if (!arr2.contains(selected)) { 
     arr2.add(selected); 
     adapter2 = new ArrayAdapter <String> (getBaseContext(), android.R.layout.simple_list_item_1, arr2); 
     lv2.setAdapter(adapter2); 
     adapter2.notifyDataSetChanged(); 

    } else { 
     Toast.makeText(getBaseContext(), "Already Contains", 1000).show(); 
    } 
0

改變這種

arr2.add(selected); 

if(!arr2.contains(selected)){ 
    arr2.add(selected); 
}