有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将对象的Arraylist从一个活动发送到另一个活动

我需要从一个活动复制一个ArrayList。 这是一个我命名为Dias的对象的数组列表,它包含一个字符串和一个布尔值:

Arraylist {Dias}  // Dias contains(String Dias, boolean estado)

我必须把这个ArrayList传递给其他活动

我的Dias课程:

public class Dias {

  private String Dia;
  private boolean estado;

//CONSTRUCTOR DE LA CLASE//
  public Dias(String Dia, boolean estado) {
      this.Dia = Dia;
      this.estado = estado;
  }

//GETTERS Y SETTERS DE LA CLASE//

  public String getDia() {
      return Dia;
  }

  public void setDia(String dia) {
      Dia = dia;
  }

  public boolean isChekeado() {
      return estado;
  }

  public void setChekeado(boolean chekeado) {
      estado = chekeado;
  }

}

我的小学班级:

 public class Primera extends Activity {
    ArrayList<Dias> dias = new ArrayList<Dias>();
     //OnClick Method
    public void lanzar2(View view){
      dias.add(new Dias("Lu", false));
      dias.add(new Dias("MAr", false));
      Intent i = new Intent();
      Bundle b = new Bundle();
      b.putParcelableArrayList("arreglo", (ArrayList<? extends Parcelable>) dias);
      i.putExtras(b);
      i.setClass(this, ListasActivity.class);
      startActivity(i);
   }

}

如何将我的阵列列表发送到其他活动?,我只是不明白它是如何工作的(可包裹的),而且我也不知道使用它的语法

谢谢大家!


共 (3) 个答案

  1. # 1 楼答案

    另一个简单的方法是以自己的方式序列化它

    例如

    如果在arraylist中有5个元素,如"hello", "how" , "are", "you", "brother"。您可以循环遍历arraylist并将字符串设置为hello,how,are,you,brother

    String serializedString = "";
    for(String anElement:arrayList)
        serilaizedString = serializedString + "," +anElement;
    

    并使用putExtra意图方法将其发送到另一个活动

    在接收端,您可以使用split(“,”拆分文本,然后您将得到一个数组,如果需要,您可以再次将其更改为数组列表

    String[] myArray = recievedString.split(",");
    List<String> myList = new List<String>();
    for(String anElement:myList)
        myList.add(anElement);
    

    现在将myList作为数组列表

    p.S.但是字符串不应该包含任何逗号。所以对于使用逗号的情况,您可以使用类似$%或任何适合使用逗号的内容

  2. # 2 楼答案

    您必须在对象DIA中实现接口Parcelable。您可以在此处查看有关如何执行此操作的更多信息:http://developer.android.com/reference/android/os/Parcelable.html

    除此之外,您还可以通过以下方法发送用于启动其他活动的意图ArrayList:

    )“>;intent.putParcelableArrayListExtra(名称存储,您的列表)

    然后startActivity(intent)可以在另一个活动中使用getIntent().getParcelableArrayListExtra(nameToSaveAs);接收数据。您可能需要强制转换它,但这是传递ArrayList的基本步骤