我有以下简单的场景:
ListCarsActivity.kt是一种名为
Problem:从现在开始,当我单击“后退”按钮时,第二次显示ListCarsActivity。
如何从历史堆栈中清除ListCarsActivity的旧条目?
发布于 2020-02-20 10:26:58
调用您的AddCarActivity.kt活动,如下所示在您的ListCarsActivity.kt中
val intent = Intent(mContext, AddCarActivity.class);
startActivityForResult(intent, 1); //Use any request code
现在,对于上面的代码,startActivityForResult所做的是打算从其他活动或源(如照相机、联系人等)接收数据。
现在,当在您的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();
}
}
这样,如果您想在第一个活动中返回新添加的数据,则可以在不使用任何第三方库的情况下获取数据。
试一试,让我知道它是否对你有用。
发布于 2020-02-20 10:08:31
使用finish()
在startActivity(intent)
之后完成要启动另一个活动的活动
发布于 2020-02-20 10:11:10
您应该使用AddCarActivity
方法运行startActivityForResult
,然后必须在AddCarActivity
中用setResult
方法设置结果,该方法将您返回到ListCarsActivity
,而无需再次启动它。
正式文件:https://developer.android.com/training/basics/intents/result
https://stackoverflow.com/questions/60317274
复制相似问题