android - 使用 getIntent().getExtras() 获取 ArrayList<MyClass>

标签 android android-intent arraylist

在我的应用程序的 Activity 中,我有一个启动新 Activity 的 Intent ,并且我想传递一个 ArrayList,即一个 ArrayList,其中每个项目都是自己的类的实例...我该如何制作?

我一直在看到可能的 getExtras() ,例如 getStringArrayList() 或 getParcelableArrayList() ,但它不起作用,我还没有找到任何有效的类型。

有人可以帮助我吗?谢谢。

这是我的课:

public class ItemFile {
  protected long id;
  protected String nombre;
  protected String rutaImagen;
  protected boolean checked;

  public ItemFile(long id, String nombre, String rutaImagen, boolean check) {
      this.id = id;
      this.nombre = nombre;
      this.rutaImagen = rutaImagen;
      this.checked = check;
  }

  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }

  public String getNombre() {
    return nombre;
  }

  public void setNombre(String nombre) {
    this.nombre = nombre;
  }

  public String getRutaImagen() {
      return rutaImagen;
  }

  public void setRutaImagen(String rutaImagen) {
      this.rutaImagen = rutaImagen;
  }

  public boolean isChecked() {
      return checked;
  }

  public void setChecked(boolean checked){
      this.checked = checked;
  }

}

我必须如何更改它才能设置 Parcelable?

最佳答案

首先确保 MyClass 类实现 Parcelable 接口(interface),然后使用此代码在其他 Activity 中获取 ArrayList :

在您的第一个 Activity 中执行如下操作:

ArrayList<MyClass> myClassList= new ArrayList<MyClass>();
Intent intent = new Intent(<YOUR ACTIVITY CONTEX>, <NEXT ACTIVITY>);
intent.putExtra("myClassList", myClassList);
startActivity(intent);

在您的下一个 Activity 中执行以下操作:

ArrayList<MyClass> list = (ArrayList<MyClass>)getIntent().getExtras()getSerializable("myClassList");

关于android - 使用 getIntent().getExtras() 获取 ArrayList<MyClass>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779571/

相关文章:

Android 搜索栏自定义拇指卡在开始

android - 为 android 虚拟键盘设置 keyPreviewLayout 导致崩溃

android - startNewActivity 多次生命周期错过理解

java - Android Wear修改 "Open on Phone"按钮intent

java - 尝试将数组拆分为 arrayList

java - 使用 set 方法时 ArrayList<Integer> 输出错误结果

java - 使用 Arraylist 填充 JCombobox

android - 改变android中的颜色亮度

android - 更改 CustomPaint 的颜色会更改所有先前的点

android - 我如何让我的应用程序显示在有音频共享的可用应用程序上