0

我正在开发一个有两个列表视图的 Android 应用程序。当用户单击必须添加到第二个列表视图的第一个列表视图的项目时。这是我正确实施的。但我的问题是字符串不能在第二个列表视图中重复。表示如果字符串 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 回答
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();
   }
于 2013-07-15T06:06:43.570 回答
1

使用 Contains 方法并检查 arr2 中是否存在特定值,如果返回 false,则仅执行 arr.add(selected)

于 2013-07-15T06:02:57.963 回答
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 回答
0

改变这个

arr2.add(selected);

if(!arr2.contains(selected)){
    arr2.add(selected);
}
于 2013-07-15T06:06:53.077 回答