这是我如何传递自定义数据类型的项目**项目[] itemsArr ** to intent
Intent pruchadeDetails = new Intent(getApplicationContext(),PurchaseHistoryDetails.class);
pruchadeDetails.putExtra("item",itemsArr[position].getShoppingItems());
startActivityForResult(pruchadeDetails, 0);
无法使用这两种方法检索它
Item[] itemArr = (Item[])getIntent().getSerializableExtra("item"); //method 1
String json = pruchadeDetails.getStringExtra("item");//method 2
非常感谢任何帮助
答案 0 :(得分:1)
希望此代码可以帮助您。
intent.putCharSequenceArrayListExtra("ListName", ArrayList)
Intent purchaseDetails= new Intent(getApplicationContext(), PurchaseHistoryDetails.class);
purchaseDetails.putCharSequenceArrayListExtra("items", yourArrayList);
startActivityForResult(purchaseDetails,0);
传递自定义数据类型的数组列表。
答案 1 :(得分:1)
试试此代码
intent.putCharSequenceArrayListExtra("ArrayListName", ArrayList)
Intent purchaseDetails= new Intent(getApplicationContext(), this.class);
purchaseDetails.putCharSequenceArrayListExtra("items", ArrayList);
startActivityForResult(purchaseDetails,0);
答案 2 :(得分:0)
使您的自定义项可分区,然后将数组作为Parcelable数组放入Bundle中,以将其传递给活动。
答案 3 :(得分:0)
你需要看看这个
http://developer.android.com/reference/android/os/Parcelable.html
让你的模型Parcelable。链接中给出了一个例子。
答案 4 :(得分:0)
如果你想在内存中这样做,我会想到三个解决方案:
答案 5 :(得分:0)
对于下面的第一项活动。
List<String> itemList = new ArrayList();
for(int i=0;i<5;i++){
itemList.add("i'th List"+i);
}
Intent intent= new Intent(this,ReportsActivity.class);
intent.putStringArrayListExtra("items", (ArrayList<String>) itemList);
startActivity(intent);
使用
将此数组转换为另一个活动Bundle bundle = getIntent().getExtras();
List<String> itemList= bundle.getStringArrayList("items");
for(int i=0;i<itemList.size();i++){
Log.i("TAG", itemList.get(i));
}