the content of the adapter has changed but listview did not

 http://dev.10086.cn/cmdn/wiki/index.php?doc-view-5432.html高手文章,要分享

这是我原来的代码

public class FileDeleteActivity extends ListActivity {
    /** Called when the activity is first created. */
 ArrayList<String> listStr=new ArrayList<String>();
 private Handler handler=null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final ListView list=new ListView(this);
        listStr=getDataSource();
        Adapter adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listStr);
        list.setAdapter(adapter);
        setListAdapter(adapter);

 }
   
    private ArrayList<String> getDataSource(){
     ArrayList<String> source=new ArrayList<String>();
     source.add("11");
     source.add("aa");
     source.add("Aa");
     source.add("EE");
     source.add("--23");
     return source;
    }
   
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id){
     listStr.remove(position);
     super.onListItemClick(l, v, position, id);
    }
}

这是我修改之后的代码:目的,每次点击之后就删除该选项

public class FileDeleteActivity extends ListActivity {
    /** Called when the activity is first created. */
 ArrayList<String> listStr=new ArrayList<String>();
 private Handler handler=null;
 private ArrayAdapter<String> adapter=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final ListView list=new ListView(this);
        listStr=getDataSource();
        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listStr);
        list.setAdapter(adapter);
        setListAdapter(adapter);

  }
   
    private ArrayList<String> getDataSource(){
     ArrayList<String> source=new ArrayList<String>();
     source.add("11");
     source.add("aa");
     source.add("Aa");
     source.add("EE");
     source.add("--23");
     return source;
    }
   
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id){
     listStr.remove(position);
     adapter.notifyDataSetChanged();//更新一下就行了
     super.onListItemClick(l, v, position, id);
    }
}

好了,希望对你有用!!

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/4254320.html