Android 新适配器未更新到listview

Android 新适配器未更新到listview,android,Android,我正试图从主列表中获取所选项目,并将其更新到其他子列表,但当我单击主列表项目时,列表中的所有项目都将不可见,除了我选择的项目外,只有该元素正在更新到子列表,可能出了什么问题?。。。下面的代码片段显示了我正在做什么 ListView list,selectedList; LazyAdapter adapter, adapter1; String mStrings[]={"item1","item2","item3","item4","item5","item6","item7"}; @Overr

我正试图从主列表中获取所选项目,并将其更新到其他子列表,但当我单击主列表项目时,列表中的所有项目都将不可见,除了我选择的项目外,只有该元素正在更新到子列表,可能出了什么问题?。。。下面的代码片段显示了我正在做什么

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();
             }

             }});

}
ListView列表,selectedList;
懒散的适配器,适配器1;
字符串mStrings[]={“item1”、“item2”、“item3”、“item4”、“item5”、“item6”、“item7”};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.list);
适配器=新的LazyAdapter(此,mStrings);
list.setAdapter(适配器);
list.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
按钮b=(按钮)findViewById(R.id.button1);
b、 setOnClickListener(listener);
list.setOnItemClickListener(新的OnItemClickListener(){
ArrayList年份=新ArrayList();
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
SparseBooleanArray checked=list.getCheckedItemPositions();
如果(选中。获取(arg2))
{
年份。添加(mStrings[arg2]);
} 
其他的
{
年。移除(mStrings[arg2]);
}
如果(年份.大小()!=0)
{
String selectedItems[]=新字符串[years.size()];

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


回收您的适配器,而不是创建新的适配器。

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


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

是的,但我需要添加新的数组,其中包含选定的项,因此采用新实例…但即使我也使用相同的适配器,也会出现问题..是的,但我需要添加新数组,其中包含选定的项,因此采用新实例…但问题甚至会发生如果我也使用相同的适配器。。