4

アクティビティ間でデータを渡すのに問題があります。ListActivityはデータを収集しており、戻るボタンを押すとMainActivityに戻り、onResumeメソッドを介してそのデータを取得したいのですが、何も取得しません。

この問題はどのように解決できますか?

ListActivity.java

    @Override
public void finish() {
    i = new Intent(ArrayListActivity.this, MainActivity.class);
    i.putParcelableArrayListExtra(Constants.TAG_SELECTED_PRODUCT_LIST, selected_list);
    super.finish();
}

MainActivity.java

    @Override
protected void onResume() {
    super.onResume();

    Bundle extras = getIntent().getExtras().getBundle(Constants.TAG_SELECTED_PRODUCT_LIST);
    if(extras != null) {
        selected_list = extras.getParcelableArrayList(Constants.TAG_SELECTED_PRODUCT_LIST);


        myListView.setAdapter(new ProductAdapter(MainActivity.this,
                    R.layout.array_lisviewt_item_row, selected_list));
    }
}
4

3 に答える 3

4

メソッドを使用して、最初のアクティビティから2番目のアクティビティを開始することをお勧めしますstartActivityForResult(...)

このメソッドを使用すると、起動されたアクティビティの結果を起動アクティビティに戻すことができます。

ドキュメントから:

終了時に結果が必要なアクティビティを開始します。このアクティビティが終了すると、onActivityResult()メソッドが指定されたrequestCodeで呼び出されます。負のrequestCodeを使用することは、startActivity(Intent)を呼び出すことと同じです(アクティビティはサブアクティビティとして起動されません)。

于 2013-03-26T15:18:42.400 に答える
2

startActivityForResult()を使用してアクティビティを開始し、onActivityResult()をオーバーライドして、2番目のアクティビティから返すデータを処理する必要があります。

詳細については、Android開発者サイトのこの記事を確認してください。

于 2013-03-26T15:24:04.320 に答える
2

おそらくあなたはすべきです

これにより、以前のに戻りますMainActivity。では、どのようにしてデータセットを取得しますListActivityか?

このメカニズムの簡単な説明は、アクティビティの開始と結果の取得にあります。

于 2013-03-26T15:41:22.293 に答える