gpt4 book ai didi

android - onActivityResult 中的 resultCode 0 和数据零

转载 作者:行者123 更新时间:2023-11-30 00:17:35 25 4
gpt4 key购买 nike

我有一个 fragment 的 Activity ,然后该 fragment 调用某个 Activity ,该 Activity 将为第一个 Activity 提供一些值(value)。我使用 onActivityResult 但我不知道为什么 resultCode 总是 0 而 data 总是零。

在我的 Activity 一上

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "onActivityResult: "+ requestCode +" "+resultCode+" "+data);

}

Activity 一有一些调用 Activity 二的fragmentX

private final int REQUEST_CODE = 10;
private void start (){
Intent intent = new Intent(getContext(),Main2Activity.class);
intent.putExtra("xxx","test1");
getActivity().startActivityForResult(intent,REQUEST_CODE);
}

然后在 Activity 二中,当我触摸 onBackpress 时,将传递一些值。

public class Main2Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}

@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = getIntent().putExtra("yyy","test2");
setResult(RESULT_OK,intent);
}
}

但是,不知道为什么,onActivityResult 获取不到数据。我的最终目的是,我想将该数据设置为 fragmentX。

最佳答案

1.可以在 fragment 中调用onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "onActivityResult: "+ requestCode +" "+resultCode+" "+data);

}

2.在方法中的 setResult 之后使用 super.onBackPressed();

@Override
public void onBackPressed() {

Intent intent = getIntent().putExtra("yyy","test2");
setResult(RESULT_OK,intent);
super.onBackPressed();
}

关于android - onActivityResult 中的 resultCode 0 和数据零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971659/

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