如何在GridView Android中逐个调用多个ArrayList

时间:2016-05-24 10:45:41

标签: android gridview

我有一个以上的ArrayList认为ArrayList1,ArrayList2,ArrayList3 ...在ArrayList1中有一些图像显示在GridView android中,当我点击图像时它应该只在GridView中显示ArrayList2而ArrayList2也有图像。对于ArrayList2和ArrayList3也是如此。如何实现这个

1 个答案:

答案 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();
    }
}