[英]Setting multidimensional ArrayList and passing to another Activity
我已經嘗試將多維ArrayList發送到另一個Activity已有一段時間了,我在這里發現了關於StackOverflow的許多答復,這些答復似乎相關,但不幸的是我無法應用其中的任何答復。
我認為設置數組的方式可能有問題。
ArrayList<java.io.Serializable> prodlist = new ArrayList<java.io.Serializable>();
for (int i = 0; i < jsonMainArr.length(); i++) {
JSONObject childJSONObject = jsonMainArr.getJSONObject(i);
String name = childJSONObject.getString("Product");
String reference = childJSONObject.getString("reference");
String link = childJSONObject.getString("img");
String qty = childJSONObject.getString("quantity");
String prodbcode = childJSONObject.getString("bcode");
ArrayList<java.io.Serializable> prod = new ArrayList<java.io.Serializable>();
prod.add( prodbcode ); //0 barcode
prod.add( name ); //1 name
prod.add( reference ); //2 ref
prod.add( link ); //3 img
prod.add( qty ); //4 qty
prodlist.add(prod);
}
我不確定此prodlist.add(prod)
是否是創建此多維數組的正確方法。
比傳遞我正在使用的數組:
Intent i = new Intent(getApplicationContext(), PrepareProduct.class);
i.putExtra("products", prodlist);
startActivity(i);
並在另一側接收:
Bundle extras = getIntent().getExtras();
ArrayList productsNameList = extras.getParcelableArrayList("products");
但是我得到的是一維數組而不是二維數組。
我是一名試圖學習Java的PHP開發人員,而這些數組使我很頭疼。 謝謝。 我知道我真正需要的東西可能已經在StackOverflow上了,但是我確實找不到可以申請的方式。
創建多維ArrayList的正確方法是
ArrayList<ArrayList<String>> prodlist = new ArrayList<ArrayList<String>>();
ArrayList<String> prod = new ArrayList<String>();
prod.add( prodbcode ); //0 barcode
prod.add( name ); //1 name
prod.add( reference ); //2 ref
prod.add( link ); //3 img
prod.add( qty ); //4 qty
prodlist.add(prod);
您的代碼為您提供一維ArrayList的原因是因為產品列表ArrayList的類型為Serializable,而ArrayList本身實現了Serializable,因此可以進行編譯,但是由於prodlist僅為一維,這就是您所得到的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.