1 つのアプローチは、それらのエクストラを詳細ビューに送信することです。その後、戻るときにそれらのエクストラを送り返すので、アクティビティ (listView を持つもの) がクラッシュすることはありません。
次のようになります。
baseActivity.java (これは ListView のものです)
Intent intent = new Intent(this, detailView.class);
intent.putExtra("nameHere1", valueHere1);
intent.putExtra("nameHere2", valueHere2);
//just put extra's here
startActivity(intent);
finish();
そして、detailView.java では、onBackPressed で次のようなことを行います。
Intent intent = new Intent(this, baseActivity.class);
intent.putExtra("nameHere1", getIntent().getExtra("nameHere1"));
intent.putExtra("nameHere2", getIntent().getExtra("nameHere2"));
//just put extra's here
startActivity(intent);
finish();
別の解決策はfinish();
、baseActivity を呼び出さないことです。アクティビティは次のようになります。
baseActivity.java (これは ListView のものです)
Intent intent = new Intent(this, detailView.class);
intent.putExtra("nameHere1", valueHere1);
intent.putExtra("nameHere2", valueHere2);
//just put extra's here
startActivity(intent);
detailView.java は、onBackPressed で次のようなことを行います。
finish();
このアプローチでは、baseActivity を「kill」しないため、detailView が画面に表示されたときにその値がそのまま残ります。ただし、このアプローチは不要な RAM を占有するため、私はあまり支持しません。