我有 Intent 并且我从 MainActivity 将 Parcelables 的两个 ArrayLists 传递给一个“FormActivity”,它接收 ArrayLists 完美(使用 startActivityForResult),完美地返回通过表单收集的数据。
问题是,如果我单击按钮再次打开 FormActivity,则两个 ArrayList 不会再次发送,并且我会收到 NullPointerException。
有没有人见过这个?
谢谢你。
主要活动代码:
public void insertProductButtonClicked(View view){
Intent addProductIntent = new Intent(getBaseContext(), AddProductActivity.class);
addProductIntent.removeExtra("consumers");
addProductIntent.removeExtra("products");
addProductIntent.putParcelableArrayListExtra("consumers", consumers);
addProductIntent.putParcelableArrayListExtra("products", products);
startActivityForResult(addProductIntent, MyActivities.ACTIVITY_ADD_PRODUCT);
}
AddProductActivity 代码(“FormActivity”):
Intent intent = new Intent();
intent.putExtra("productName", productNameEditText.getText().toString());
intent.putExtra("productPrice", Double.valueOf(productPriceEditText.getText().toString()));
SparseBooleanArray checkedItems = consumersListView.getCheckedItemPositions();
ArrayList<Integer> consumersToAdd = new ArrayList<Integer>();
for (int i = 0; i < consumers.size(); i++) {
if (checkedItems.get(i)){
consumersToAdd.add(consumers.get(i).getId());
}
}
intent.putIntegerArrayListExtra("productConsumers", consumersToAdd);
setResult(Activity.RESULT_OK, intent);
finish();