the content of the adapter has changed but listview did not

改进后的列表项删除代码示例
本文提供了两个实现列表项删除功能的Android代码示例,一个为原始代码,另一个进行了优化,使得每次点击列表项即可删除对应选项。示例包括创建列表视图、加载数据源、设置适配器,并在列表项被点击时调用remove方法进行删除操作。

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

好了,希望对你有用!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值