gpt4 book ai didi

android - 带有 fragment 的 Activity 和另一个 Activity 在 onActivityResult 中返回 null

转载 作者:太空狗 更新时间:2023-10-29 16:27:14 25 4
gpt4 key购买 nike

ActivityOne -> 包含 FragmentOne 并且我添加了 onActivityResult 方法

FragmentOne -> 包含 recyclerView 并在项目上单击 startActivityForResult 转到 ActivityTwo

ActivityTwo -> 在 FragmentOne 的 recyclerView 中获取项目详细信息

ActivityOne 在ActivityResult 上获取空数据

代码: Activity 一

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Utils.showToast("intent receive");
if (requestCode==1111 && resultCode == RESULT_OK){
int position =(int) data.getExtras().get("position");
Log.d("TAG", "onActivityResult: "+ position);
}
}

代码:FragmentOne

   Intent i = new Intent(mContext.getApplicationContext(), ActivityTwo.class);
Bundle bundle = new Bundle();
bundle.putInt("id", id);
bundle.putInt("position",position);
i.putExtras(bundle);
((Activity) mContext).startActivityForResult(i,1111);

代码:ActivityTwo

@Override
public void onBackPressed() {
super.onBackPressed();
if (hasChanges){
Intent intent = new Intent();
intent.putExtra("position",position);
setResult(Activity.RESULT_OK,intent);
}
finish();
}

最佳答案

onBackPressed() 更改为。您刚刚完成 Activity 而没有返回结果。在这种情况下,还有一件事 super.onBackPressed() 将做与 finish 相同的事情。所以只需调用一个。

 @Override
public void onBackPressed() {
if (hasChanges){
Intent intent = new Intent();
intent.putExtra("position",position);
setResult(Activity.RESULT_OK,intent);
}
super.onBackPressed();
}

关于android - 带有 fragment 的 Activity 和另一个 Activity 在 onActivityResult 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47749805/

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