转载:http://blog.sina.com.cn/s/blog_62ebbfa30100ud5u.html
常常使用Arrays.asLisvt()后调用add,remove这些method时出现java.lang.UnsupportedOperationExce
Arrays.asLisvt() 返回java.util.Arrays$ArrayList, 而不是ArrayList。Arrays$ArrayList和ArrayList都是继承AbstractList,remove,add等 method在AbstractList中是默认throw UnsupportedOperationExce
解决方法是使用Iterator,或者转换为ArrayList
List list = Arrays.asList(a[]);
List arrayList = new ArrayList(list);
//---------------------------------------------------------以上为转载内容
//---------------------------------------------------------以下是我自己的
//有个gridview的控件
userGridview = (ExpandGridView) findViewById(R.id.history_gridview);
//做一个adapter给gridview赋值;thisgroup.getMembers()是我调用别的地方的方法,返回值为List
adapter =new GridAdapter(HistoryDetail.this, R.layout.grid,thisgroup.getMembers());
userGridview.setAdapter(adapter);
//在程序的某个地方调用clear()时候报错;
adapter.clear();
报错的大致原因理解为list不能直接clear;要把list,new成ArrayList就ok啦
修改后的代码
List<String> members = new ArrayList<String>();
members.addAll(thisgroup.getMembers());
userGridview = (ExpandGridView) findViewById(R.id.history_gridview);
adapter =new GridAdapter(HistoryDetail.this, R.layout.grid,members);
userGridview.setAdapter(adapter);