2

私は Intent を持っており、Parcelables の 2 つの ArrayLists を MainActivity から "FormActivity" に渡します。これは ArrayLists を完全に受け取り (startActivityForResult を使用)、フォームを通じて収集されたデータを完全に返します。

問題は、ボタンをクリックして FormActivity を再度開くと、2 つの ArrayLists が再度送信されず、NullPointerException が発生することです。

誰もこれを見たことがありますか?

ありがとうございました。

MainActivity コード:

 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();
4

1 に答える 1

1

ArrayList を静的として宣言できます。以下を確認してください...

public static ArrayList<String> array = new ArrayList<String>(); 

これを行うことで、どこからでもタイプ別に ArrayList にアクセスできます

activity_name.array;

ここで、 activity_name は、静的 ArrayList を宣言するアクティビティまたはクラスです。

幸運を。

于 2012-09-25T05:34:40.517 に答える