Android重新加载网格视图自定义适配器

时间:2019-06-18 14:47:24

标签: android gridview adapter

虽然我有一个可行的“解决方案”,但我真的不喜欢它,并认为这会导致内存问题。最终,我有一个包含GridView的活动,该活动由一个对象数组-subjectArrayList

填充

在活动上,我有一个按钮,我要在其中“重新加载”阵列并更新网格视图。

目前我有这个:

// reload all subjects
        subjectAreas = "all";
        subjectsArrayList = populateSubjects();
        myAdapter = new MyAdapter(getApplicationContext(), subjectsArrayList);
        gridView.invalidateViews();
        gridView.setAdapter(myAdapter);

我敢肯定还有一种更优雅的方法。我担心的是,我正在创建另一个适配器,而不是回收它。

我已经看过notifyDataSetChanged(),但是对于如何使用它尚不完全清楚,而我的各种尝试导致什么也没有发生。

问题: 1)我做得还好吗?还是我担心每次都重新创建适配器时是否正确? 2)有没有更好的方法来实现我想要的?

预先感谢

1 个答案:

答案 0 :(得分:0)

您应该:

  • 使用新数据更新适配器
  • 致电myAdapter.notifyDataSetChanged()来更新GridView

更好的是,您应该将RecyclerViewGridLayoutManager一起使用,而不是GridView