我有一个以上的ArrayList认为ArrayList1,ArrayList2,ArrayList3 ...在ArrayList1中有一些图像显示在GridView android中,当我点击图像时它应该只在GridView中显示ArrayList2而ArrayList2也有图像。对于ArrayList2和ArrayList3也是如此。如何实现这个
答案 0 :(得分:1)
假设所有ArrayLists都包含相同的对象类型。
创建一个新的ArrayList,让我们称之为AdapterArrayList,并将其用作Adapter的主ArrayList。现在,如果要使用ArrayList1,来自AdapterArrayList的clear()
元素,然后使用addAll()
ArrayList1。当然还有notifyDataSetChanged()
适配器。
当您想使用ArrayList2和ArrayList3时,请执行相同操作。
[编辑]
例如:
public class MyAdapter extends BaseAdapter {
List<Image> mImagesList;
public MyAdapter(List<Image> imagesList) {
mImagesList = imagesList;
...
}
}
要将该适配器与ArrayLists一起使用,您需要:
public class MyActivity extends Activity {
MyAdapter mAdapter;
List<Image> mainList = new ArrayList();
List<Image> arrayList1 = new ArrayList();
List<Image> arrayList2 = new ArrayList();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
mAdapter = new MyAdapter(mainList);
myListView.setAdapter(mAdapter);
}
private void switchToList1() {
mainList.clear();
mainList.addAll(arrayList1);
mAdapter.notifyDataSetChanged();
}
private void switchToList2() {
mainList.clear();
mainList.addAll(arrayList2);
mAdapter.notifyDataSetChanged();
}
}