0

我有一個ArrayListCustomInput對象和DataWrapper類與吸氣劑和設置器爲ArrayList。我想將非活動類中的DataWrapper傳遞給活動類。我曾嘗試實現Serializable,但是我得到Parcelable遇到寫入可序列化對象的ioexception原因NotSerializableException將ArrayList從傳遞到活動

DataWrapper.java

public class DataWrapper implements Serializable { 
    private static final long serialVersionUID = 1L; 
private ArrayList<CustomInput> customInputs; 

public void setFields(ArrayList<CustomInput> data) { 
    this.customInputs = data; 
} 

public ArrayList<CustomInput> getFields() { 
    return this.customInputs; 
} 
} 

非Activiy類

public void showActivity() { 
    Intent intent = new Intent(request, ActivityKorak.class); 
    intent.putExtra("title", title); 
    DataWrapper dw = new DataWrapper(); 
    dw.setFields(fields); 
    intent.putExtra("data", dw); 

    request.startActivity(intent); 
} 

ActivityKorak.class->的onCreate()

Intent intent = getIntent(); 
    String title = intent.getStringExtra("title"); 
    DataWrapper dw = (DataWrapper) intent.getSerializableExtra("data"); 
    ArrayList<CustomInput> fields = dw.getFields(); 
+0

您好爲什麼你在Serializable中創建數組列表,它會自動以數組的形式工作。 – Saveen

+0

如果你想用Serializable做,那麼我會給你例子它是如何工作的 – Saveen

+0

我只想將ArrayList傳遞給Activity,我不必使用DataWrapper。 – jelic98

回答

1

無需創建新類DataWrapper.java。因爲ArrayList是可序列化的。

非Activiy類

public void showActivity() { 
    Intent intent = new Intent(request, ActivityKorak.class); 
    intent.putExtra("title", title); 
    intent.putExtra("data", fields); 

    request.startActivity(intent); 
} 

ActivityKorak.class->的onCreate()

Intent intent = getIntent(); 
    String title = intent.getStringExtra("title"); 
    DataWrapper dw = (DataWrapper) intent.getSerializableExtra("data"); 
    ArrayList<CustomInput> fields = dw.getFields(); 
0

喜請我們如何能夠在意圖上發送的ArrayList

ArrayList<HashMap<String, String>> aldata = new ArrayList<HashMap<String, String>>(); 

我在這裏假設的數據在ArrayList中已經添加,請

發送數據,並開始其他活動,

Intent intent = new Intent(this,AbcActivity.class); 
intent.putExtra("aldata", aldata_TaxiLine); 
startActivity(intent); 

獲取您的下一個活動的數據,

ArrayList<HashMap<String, String>> aldata1; 

,並在您的OnCreate

調用此
aldata = (ArrayList<HashMap<String, String>>) getIntent() 
      .getSerializableExtra("aldata"); 

希望這會幫助你。

相關問題