我正在开发一个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();
}
});
答案 0 :(得分:3)
可能这会奏效。
String selected = lv1.getItemAtPosition(arg2).toString();
if (!arr2.contains(selected)) {
//add item in second ListView
arr2.add(selected);
} else {
show popup
}
答案 1 :(得分: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();
}
答案 2 :(得分:1)
我建议你保存一个ArrayList(你的arr2)并检查arr2是否已经包含所选的字符串。
if(arr2.contains(selected)){
//continue with something else
}else{
//add to list and refresh Fragment
}
答案 3 :(得分:1)
使用Contains方法并检查arr2中是否存在特定值,如果返回false,则仅执行arr.add(已选择)
答案 4 :(得分:0)
更改此
arr2.add(selected);
要
if(!arr2.contains(selected)){
arr2.add(selected);
}