wawanopoulos:
私は、次のような単純なシナリオを持っています:
- 一つの活動はと呼ばれるListCarsActivity.kt車のリストが表示されます。ユーザーがFloatingActionButtonをクリックすると、それが呼ばれる別のアクティビティ開きAddCarActivity.ktを
- 上のユーザーがクリックすると追加車のボタンは、私は追加の車が表示されるようになりました初期活性のListCarsActivity.ktに行く新しい意図を開始します。
問題は:今から、私は戻るボタンをクリックすると、ListCarsActivityを2回表示されます。
履歴スタックからListCarsActivityの古いエントリを削除するには?
Rakshit Nawani:
お電話AddCarActivity.ktあなたの内側に以下のような活動をListCarsActivity.kt
val intent = Intent(mContext, AddCarActivity.class);
startActivityForResult(intent, 1); //Use any request code
今startActivityForResultが何上記のコードのために、それはいくつかの他の活動またはソースからのデータのバックを受けることが意図されていることである(ETCカメラ、連絡先、など)
これですべての作業は、自分の中で行われているときAddCarActivity.ktあなたはすべて以下のことができます意図結果を取り戻すために
Intent intent = getIntent();
intent.putExtra("key", data); // if you wanted to get data
setResult(RESULT_OK, intent);
finish();
そして、あなたの内側にListCarsActivity.ktあなたが追加する必要がonActivityResultからデータを取得しますどのAddCarActivity.kt
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 1) { //Your request code here
Object obj = data.getParcelableExtra("key");
//Do as per your needs
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
あなたが最初のアクティビティで新しく追加されたデータのバックを返すしたい場合これにより、サードパーティのLIBSの使用せずに取り出すことができます。
それを試してみて、それはあなたのために働いていたなら、私に知らせてください。