java - 来自parcelable arraylist的Recyclerview
问题描述
我有一个自定义对象的数组列表嵌套在另一个数组列表中,如下所示:
public class Person implements Parcelable {
private String Name;
private float Age;
private String Email;
ArrayList<Hobbies> Hobbies;
public Person(String name, float age, String email, ArrayList<Hobbies> hobbies) {
this.Name = name;
Age = age;
this.Email = email;
this.Hobbies = hobbies;
}
我使用“putParcelableArrayListExtra()”将这个数组列表从 MainActivity 传递到另一个活动
intent.putParcelableArrayListExtra(HOBBIES_ARRAY, Person.get(position).getHobbies());
我用它来检索它
hobbiesArray = new Arraylist<>();
hobbiesArray = getIntent().getParcelableArrayListExtra(MainActivity.HOBBIES_ARRAY);
然后我将此列表添加到 recyclerview
hobbiesRecycler = findViewById(R.id.HobbyRecycler);
mLayoutManager = new LinearLayoutManager(this);
adapter = new HobbiesAdapter(hobbiesArray);
hobbiesRecycler.setLayoutManager(mLayoutManager);
hobbiesRecycler.setAdapter(adapter);
adapter.notifyDataSetChanged();
这是我得到的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference at com.example.ReminderApp.hobbiesAdapter.getItemCount(hobbiesAdapter.java:55)
编辑:我还从第二个活动向数组列表添加项目
解决方案
爱好也可以打包吗?从您显示的代码中,Person 类是可打包的,因此可以发送。
您可以使用http://www.parcelabler.com/确保设置了所有需要的方法。
尝试发送 Person,然后从 Person 类中检索 Hobbies。
推荐阅读
- vcpkg - 致命错误 C1083:无法打开包含文件:'ifaddrs.h':没有这样的文件或目录
- javascript - 如何在 PartialView 表单上保留 HTTPPost 操作中的数据,以在另一个 PartialView [ASP.NET] 上的 HTTPGet 操作中使用
- spring-boot - 如何在 Thymeleaf 的翻译中使用链接(锚标记)?
- python-3.x - django 自定义用户注册模型中密码重置的默认模板名称
- powershell - 用于下载 .Net Core 5.0.4 Hosting Bundle Installer 的 Powershell 命令
- git - 为什么直接在节点上运行 cmd 时 Jenkins 不能从 Git 获取?
- git - 项目解决方案正在显示 Git 文件
- python - 我无法解决这个问题“IndexError: list index out of range”
- java - 在 Prod env Java 批处理中有时会因未找到类异常而出现 NoClassdeffoundError 失败。一天或一周至少发生一次
- python - 在 webtech 模块 python 中创建 apps.json 文件