【问题标题】:How to send an ArrayList of objects to other activity? [duplicate]如何将对象的 ArrayList 发送到其他活动? [复制]
【发布时间】:2019-05-21 11:18:26
【问题描述】:

我想知道如何在第二个活动中制作列表视图

Person person = new Person(nome, idade, numero);

        this.list.add(person);

    int number= this.list.size();
        this.numero.setText(String.valueOf(number));

        this.item.setText("");
    }
        break;

    case R.id.btn_activity2:
        Intent intent = new Intent(MainActivity.this, ListActivity.class);
        intent.put(...here is the problem)
        startActivity(intent);
        break;

【问题讨论】:

    标签: java android object arraylist


    【解决方案1】:

    ArrayList 发送到下一个活动的一种方法是创建bundle,如下所示:

    Bundle bundle = new Bundle();
    bundle.putParcelableArrayList("Object", listOfObject);
    intent.putExtras(bundle);
    startActivity(intent);
    

    listOfObject 应替换为您的ArrayList 的名称。然后,要在您的ListActivity.class 中接收意图,您可以这样做:

    List<Person> myList= this.getIntent().getExtras().getParcelableArrayList("Object");
    

    myList 现在是该对象的列表。如果您收到任何错误,请在下方评论。

    【讨论】:

    • 输入arraylist名称时出现错误:(
    • 错误是什么?一个可能的原因可能与对象的类有关。尝试将implements Parceable 添加到班级。所以它应该看起来像:public class MyObject implements Parceable.
    • 是的,我这样做了,但是当我开始第二个活动时出现异常:java.lang.RuntimeException:无法启动活动 ComponentInfo{com.mycompany.ListView/com.mycompany.ListView. ListActivity}: android.os.BadParcelableException: Parcelable 协议需要在类 com.mycompany.ListView.Perso 上名为 CREATOR 的 Parcelable.Creator 对象
    【解决方案2】:

    你可以用intent.putStringArrayListExtra(your-key, ArrayList)然后用

    String[] arrayList = extras.getStringArrayListExtra(your-key);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      • 2021-06-16
      • 2011-10-15
      • 1970-01-01
      相关资源
      最近更新 更多