首页 > 解决方案 > 来自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)

编辑:我还从第二个活动向数组列表添加项目

标签: javaandroidarraylist

解决方案


爱好也可以打包吗?从您显示的代码中,Person 类是可打包的,因此可以发送。

您可以使用http://www.parcelabler.com/确保设置了所有需要的方法。

尝试发送 Person,然后从 Person 类中检索 Hobbies。


推荐阅读