在一个框架中实现两个列表视图

时间:2014-12-15 11:59:52

标签: android listview adapter

我在同一个活动中处理两个列表视图,其中第一个中有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;

2 个答案:

答案 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();

}