android - 新适配器未更新到 ListView

标签 android

我正在尝试从主列表中获取选定的项目,并将它们更新到其他子列表,但是当我单击主列表项目时,列表的所有项目都将变得不可见,除了我选择的那个,只有那个元素是更新到子列表,可能是什么问题?...下面的代码 fragment 显示了我在做什么...

ListView list,selectedList;
LazyAdapter adapter, adapter1;
String mStrings[]={"item1","item2","item3","item4","item5","item6","item7"};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    list=(ListView)findViewById(R.id.list);
    adapter=new LazyAdapter(this, mStrings);
    list.setAdapter(adapter);
    list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

    Button b=(Button)findViewById(R.id.button1);
    b.setOnClickListener(listener);

    list.setOnItemClickListener(new OnItemClickListener(){


        ArrayList<String> years = new ArrayList<String>();

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            SparseBooleanArray checked = list.getCheckedItemPositions();
                    if(checked.get(arg2))
                    {
                     years.add(mStrings[arg2]);                          
                    } 
                    else
                    {
                      years.remove(mStrings[arg2]);
                    }

             if(years.size()!=0)
             {
                 String selectedItems[]=new String[years.size()];
                 for(int i=0;i<years.size();i++)
                     selectedItems[i]=years.get(i);

                 selectedList=(ListView)findViewById(R.id.selectedList);
                 adapter1=new LazyAdapter(MainActivity.this, selectedItems);
                 selectedList.setAdapter(adapter1);
                 adapter1.notifyDataSetChanged();
             }

             }});

}

最佳答案

最好使用相同的适配器实例并更改其内容,然后通知数据更改(就像您所做的那样)。

回收你的适配器而不是创建一个新的。

关于android - 新适配器未更新到 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8653652/

相关文章:

java - 将 Crosswalk 13+ 的用户代理更改为 Cordova 中的 webview

android - 如果我发布的 apk 更新了,google play 会通知用户吗……???怎么做?

android - RecyclerView 的行正在洗牌并更改图像 : android

android - 如何在用户使用Android应用程序发布到Facebook墙时添加应用程序 Logo

java - Android NDK 写入 SQLite

java - 关于 onPause 和 onResume 的建议

android - 如何使用 Firemonkey 显示 Android 内存中的可用文件

Android 应用限制问题?

android - SIGSEGV in Canvas.clipPath 在第二个 clipPath

java - 较低 API 级别的 Android 安全性