gpt4 book ai didi

android - 当用户按下后退按钮时忽略 setResult

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

在我的应用程序中,我在 list 文件中定义了 2 个 Activity ,如下所示:

<activity android:name=".event.EventDetailsActivity"
android:launchMode="singleTop"
android:parentActivityName=".main.MainActivity"
android:theme="@style/AppTheme.WithActionBar"/>

<activity
android:name=".main.MainActivity"
android:launchMode="singleTop"/>

MainActivity 中,我有 4 个 fragment 。在一个 fragment 中,我使用以下方法在一个 fragment 中启动了 EventDetailsActivity:

Intent intent = new Intent(new Intent(getContext(), EventDetailsActivity.class));
intent.putExtra(EventDetailsActivity.ID_KEY, id);
intent.putExtra(EventDetailsActivity.TYPE_KEY, true);
startActivityForResult(intent, DETAILS_REQUEST);

我如何处理 EventDetailsActivity 中的后退导航:

public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}

return super.onOptionsItemSelected(item);
}

@Override
public boolean onSupportNavigateUp() {
Log.d(TAG, "Navigate up");
onBackPressed();
return true;
}

@Override
public void onBackPressed() {
Log.d(TAG, "Back pressed " + isChanged);
if (isChanged) {
Log.d(TAG, "Set result");
setResult(RESULT_OK);
finish();
}
super.onBackPressed();
}

问题是 onActivityResult 在调用 Fragment 中被调用,但结果代码始终是 0 (RESULT_CANCELED)。此外,如果我按下后退箭头按钮,onSupportNavigateUp 永远不会被调用。这个问题有什么解决方法吗?

最佳答案

删除:android:launchMode="singleTop"

并移除 onBackpressed 函数中的 super.onBackpressed因为你使用了 finish()

关于android - 当用户按下后退按钮时忽略 setResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190602/

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