2014-10-30 63 views
0

我需要从另一个活动复制一个ArrayList。 这是一个对象,我命名为迪亚斯ArrayList中,它包含一个字符串和一个布尔值:发送一个对象从一个活动到另一个对象

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

而且我必须通过此ArrayList到其他活动。

我迪亚斯类:

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); 
    } 

} 

我怎样才能把我的的ArrayList到另一个活动?我只是不明白它如何工作(parcelable),我也不知道使用它的语法。

谢谢!

回答

0

另一个简单的方法是以你自己的方式对它进行序列化。

例如

如果你在你的ArrayList像"hello", "how" , "are", "you", "brother" 5个元素。你可以通过数组列表循环,使一个字符串作为hello,how,are,you,brother

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

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

而在接收端,你可以使用拆分文本(“,”)然后你会得到一个数组,你可以在需要的时候再次更改数组列表。

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

现在你有myList作为数组列表。

P.S.你的字符串不应该包含任何逗号。因此,对于使用逗号的情况,您可以使用$%之类的东西,也可以使用以下任何情况。

0

您必须在对象Dias中实现接口Parcelable。你可以看到更多关于如何在这里做到这一点:http://developer.android.com/reference/android/os/Parcelable.html

除此之外,你会通过您使用使用该方法来启动其他活动ArrayList的一个Intent发送:

)“> intent.putParcelableArrayListExtra(nameToSaveAs ,yourList)

然后你startActivity(intent),你可以与getIntent().getParcelableArrayListExtra(nameToSaveAs);的其他活动,您可能要投它接收数据,但是这是基本的步骤来传递的ArrayList。

相关问题