虽然我有一个可行的“解决方案”,但我真的不喜欢它,并认为这会导致内存问题。最终,我有一个包含GridView的活动,该活动由一个对象数组-subjectArrayList
填充在活动上,我有一个按钮,我要在其中“重新加载”阵列并更新网格视图。
目前我有这个:
// reload all subjects
subjectAreas = "all";
subjectsArrayList = populateSubjects();
myAdapter = new MyAdapter(getApplicationContext(), subjectsArrayList);
gridView.invalidateViews();
gridView.setAdapter(myAdapter);
我敢肯定还有一种更优雅的方法。我担心的是,我正在创建另一个适配器,而不是回收它。
我已经看过notifyDataSetChanged(),但是对于如何使用它尚不完全清楚,而我的各种尝试导致什么也没有发生。
问题: 1)我做得还好吗?还是我担心每次都重新创建适配器时是否正确? 2)有没有更好的方法来实现我想要的?
预先感谢
答案 0 :(得分:0)
您应该:
myAdapter.notifyDataSetChanged()
来更新GridView
更好的是,您应该将RecyclerView
与GridLayoutManager
一起使用,而不是GridView