2014-10-30 85 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。

相關問題