首页 > 解决方案 > 从另一个活动将项目添加到回收站视图的最佳方法?

问题描述

所以我的 MainActivity 中有一个 recyclerview 并想打开一个窗口(新活动?)并从该窗口将项目添加到我的 recyclerview 中。现在我正在尝试这样做。问题是当我将项目添加到列表中时,我的 recyclerview 没有显示它(我想这是因为我没有更新我的适配器?)这样做的最佳方法是什么?我不介意改变我的程序的结构。

MainActivity.java

        static ArrayList<filterItem> filters = new ArrayList<>();

        filters.add(new filterItem("1", R.mipmap.ic_launcher));
        filters.add(new filterItem("2", R.mipmap.ic_launcher));
        filters.add(new filterItem("3", R.mipmap.ic_launcher));
        filters.add(new filterItem("4", R.mipmap.ic_launcher));
        filters.add(new filterItem("5", R.mipmap.ic_launcher));
        filters.add(new filterItem("6", R.mipmap.ic_launcher));
        filters.add(new filterItem("7", R.mipmap.ic_launcher));
        filters.add(new filterItem("8", R.mipmap.ic_launcher));
        filters.add(new filterItem("9", R.mipmap.ic_launcher));
        filters.add(new filterItem("10", R.mipmap.ic_launcher));

        RecyclerView recyclerView = findViewById(R.id.recyclerView);
        recyclerView.setLayoutManager(layoutManager);
        adapter = new MyAdapter(this, filters);
        adapter.setClickListener(this);
        recyclerView.setAdapter(adapter);

BrowseFilters.java MainActivity.filters.add(filterToAdd);

我知道已经有帖子回答了如何做到这一点的问题,答案只是让列表像我所做的那样保持静态。但这是最好的方法还是有更好的方法呢?如果制作静态列表是最好的方法,那么如何在 MainActivity 中显示我更新的列表?

标签: javaandroidandroid-recyclerview

解决方案


您需要adapter.notifyDataSetChanged()在将项目添加到适配器后调用

这种情况下的最佳实践startActivityForResult()来自 MainActivity

在 SecondActivity 中,将要在 MainActivity 中添加的额外项目传递回 MainActivity

在 MainActivity 中,覆盖onActivityResult()并处理将额外项目添加到适配器并调用adapter.notifyDataSetChanged()


推荐阅读