java - 从另一个活动将项目添加到回收站视图的最佳方法?
问题描述
所以我的 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 中显示我更新的列表?
解决方案
您需要adapter.notifyDataSetChanged()
在将项目添加到适配器后调用
这种情况下的最佳实践startActivityForResult()
来自 MainActivity
在 SecondActivity 中,将要在 MainActivity 中添加的额外项目传递回 MainActivity
在 MainActivity 中,覆盖onActivityResult()
并处理将额外项目添加到适配器并调用adapter.notifyDataSetChanged()
推荐阅读
- .net - .net5.0 是否已经支持 tls1.3?
- javascript - javascript根据字符串中的日期对对象数组进行排序,并带有一些空值
- jenkins - 从另一个构建一个 Jenkins 管道时,将默认布尔参数值从 false 覆盖为 true
- python - 如何在不在 python 中迭代文件的情况下随机拆分 json.bz2 文件?
- wordpress - Woocommerce Stripe 没有这样的来源:'src_1HSDYbGnTdOaP0tZcjziW81K' 错误
- java - 将 KeyAdapter 添加到 JComponent
- c++ - 如何修复非静态函数
- kubernetes - 当我请求具有 8-8 个线程的并行两台机器时,为什么 Kubernetes 32 个实例提供连接超时?
- python - 使用python-can时出现AttributeError(模块'can'没有属性'interface')
- windows - 如何从另一个 Windows 批处理脚本调用一个 Windows 批处理脚本并在两者中延迟扩展