【问题标题】:Android reload grid view custom adapterAndroid重新加载网格视图自定义适配器
【发布时间】:2019-06-18 14:47:24
【问题描述】:

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

在活动中,我有一个按钮,我想在其中“重新加载”数组并更新网格视图。

目前我有这个:

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

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

我查看了 notifyDataSetChanged() 但不完全清楚如何使用它,我的各种尝试都没有发生任何事情。

问题: 1)我正在做的事情是否正确,或者我担心每次都重新创建我的适配器是正确的? 2)有没有更好的方法来实现我想要的?

提前致谢

【问题讨论】:

    标签: android gridview adapter


    【解决方案1】:

    你应该:

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

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

    【讨论】:

    • 我很怀疑,但我似乎无法弄清楚如何真正按照您的步骤操作。继续使用 GridView 能否提供代码示例?
    猜你喜欢
    • 2015-10-24
    • 2011-07-08
    • 2014-05-02
    • 2013-12-28
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多