gpt4 book ai didi

java - Android - 在 Activity 关闭时设置 Activity 结果

转载 作者:行者123 更新时间:2023-11-29 07:29:01 27 4
gpt4 key购买 nike

为结果开始 Activity :

Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
startActivityForResult(intent,EVENT_DETAILS_REQUEST);

在我的 DetailsActivity 中,设置可在主 Activity 中使用的结果和额外内容:

@Override
public void onBackPressed()
{
Intent resultIntent = new Intent();
resultIntent.putExtra("isEdited",isEdited);
setResult(RESULT_OK,resultIntent);
finish();
}

最后,在 MainActivity 中:

@Override
protected void onActivityResult(int requestCode, int resultCode, @NonNull Intent data)
{
switch(requestCode)
{
......
case EVENT_DETAILS_REQUEST:
boolean isEdited = data.getBooleanExtra("isEdited", false);
.......
break;

}

}

只要用户使用“后退”硬件(或系统导航栏)按钮关闭 DetailsActivity,就可以了。如果用户点击 Activity 顶部的“后退”箭头关闭 Activity ,onBackPressed 将不会被调用并且 onActivityResult 数据将为空。

我尝试使用 onPauseonStoponFinish 而不是 onBackPressed 来管理它的工作,但是我正在获取 onActivityResultdata 始终为 null。

解决我的问题的正确方法是什么?

最佳答案

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
onBackPressed();
return true;

default:
return super.onOptionsItemSelected(item);
}
}

在您的详细信息 Activity 中覆盖此方法...和此代码

关于java - Android - 在 Activity 关闭时设置 Activity 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45712891/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com