首页 > 代码库 > 【安卓笔记】ArrayAdapter删除item注意事项
【安卓笔记】ArrayAdapter删除item注意事项
ArrayAdapter提供了remove方法可以删除数据源中的数据,并使界面刷新。下面是其源码:
下面是ArrayAdapter使用示例:
public void remove(T object) { synchronized (mLock) { if (mOriginalValues != null) { mOriginalValues.remove(object); } else { mObjects.remove(object); } } if (mNotifyOnChange) notifyDataSetChanged();//通知观察者 }
下面是ArrayAdapter使用示例:
mListView = (ListView) findViewById(R.id.lv); String[] data = http://www.mamicode.com/{>上面代码没有任何问题,可以删除条目。但是,当我们构造ArrayAdapter的时候,传进去的数据源如果不是List类型而是数组类型的话,那么删除将会报错!原因:查看ArrayAdapter的构造器:public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) { init(context, resource, textViewResourceId, Arrays.asList(objects)); }可以看到,它会调用Arrays.asList方法将数组转化为List类型,但是我们知道,这个List不可以add/remove,所以,ArrayAdapter的remove方法会报错。所以,大家在构造ArrayAdapter的时候,最好传进去一个List集合(可修改的),也可以这样:List<String> d = new ArrayList<String>(Arrays.asList(data));
【安卓笔记】ArrayAdapter删除item注意事项
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。