我在同一个活动中处理两个列表视图,其中第一个中有3个字符串,第二个列表视图为空白。我希望每当按下任何值时,将第一个列表的值转移到第二个列表中。
listView1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// ListView Clicked item index
int itemPosition = position;
// ListView Clicked item value
String itemValue = (String) listView1
.getItemAtPosition(position);
secoundList.add(itemValue);
firstList.remove(position);
Toast.makeText(
getApplicationContext(),
"Position :" + itemPosition + " ListItem : "
+ itemValue, Toast.LENGTH_SHORT).show();
}
});
但每次我在logcat中得到错误&#34;适配器的内容已经改变但是listview没有收到任何通知&#34;日志cat的错误,确保不会从后台线程修改适配器的内容&#34;
答案 0 :(得分:1)
修改列表后必须调用此方法。
listAdapter.notifyDataSetChanged();
答案 1 :(得分:0)
如果我理解你的问题,那么你试图从一个列表中选择列表项目,以便在第二个列表视图中显示所选列表项。?
我会根据我的理解给你一个问题。
首先,您需要使用item初始化第一个列表。
ListView listview1 = findViewBId(---------);
ListView listview2 = findViewBId(---------);
ArrayList<String> list1 = new ArrayList<String>();
list1.add("abc");
list1.add("pqr");
list1.add("pqr");
--------------------
ArrayList<String> list2 = new ArrayList<String>();
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(context, resource, list1 );
listView1.setAdapter(adapter1 );
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(context, resource, list2 );
listView1.setAdapter(adapter2 );
listView1.setOnItemClickListener(this);
onItemClick(AdapterView<?> parent, View view, int position, long id) {
list2.add(list1.get(position));
adapter2.notifyDataSetChanged();
}