Android onActivityResult返回结果代码始终为-1
我有一个片段,我从中调用活动,完成任务后,处理它并返回片段屏幕。在这种情况下,我需要从活动中获取数据,我正试图使用onActivityResult处理这些数据,但得到的结果代码总是-1 片段代码:Android onActivityResult返回结果代码始终为-1,android,android-fragments,android-activity,onactivityresult,startactivityforresult,Android,Android Fragments,Android Activity,Onactivityresult,Startactivityforresult,我有一个片段,我从中调用活动,完成任务后,处理它并返回片段屏幕。在这种情况下,我需要从活动中获取数据,我正试图使用onActivityResult处理这些数据,但得到的结果代码总是-1 片段代码: //call to next screen, below code is written inside alert dialog Intent intentAddProfile = new Intent(getActivity(), UpdateMyProfilectivity.class)
//call to next screen, below code is written inside alert dialog
Intent intentAddProfile = new Intent(getActivity(), UpdateMyProfilectivity.class);
startActivityForResult(intentAddProfile, Constants.REQUEST_CODE_UPDATE_PROFILE);
其次是
//onactivityresult handling, inside onactivityresult() method
if (requestCode == Constants.REQUEST_CODE_UPDATE_PROFILE) {
if (resultCode == Constants.RESPONSE_CODE_UPDATE_PROFILE) {
Log.v("Result Code :", "" + resultCode); //getting always -1
}
}
然后
我想知道为什么它不返回实际结果代码,例如334。因为您的常量。响应\u代码\u更新\u配置文件为-1 将onActivityResult方法从片段移动到保存片段的活动。应该是这样的。想象一下你有三个活动A、B和C。现在从活动A调用startActivityForResult for B和C
Intent intentAddProfile = new Intent(getActivity(), B.class);
startActivityForResult(intentAddProfile, 2);
及
关于活动B
setResult(requestCode, intent); // requestCode = 2;
Intent backIntent = new Intent();
backIntent.putExtra("value", 334);
setResult(2, backIntent);
活动C
setResult(requestCode, intent); // requestCode = 3;
最后,关于活动A onactivityresult
if (requestCode == 2) {
// comming back from activity B.
}
else if (requestCode == 3)
{
// comming back from activity C.
}
requestCode仅能帮助您识别来自哪个活动
你要做的唯一一件事就是把你的意图表达出来
关于活动B
setResult(requestCode, intent); // requestCode = 2;
Intent backIntent = new Intent();
backIntent.putExtra("value", 334);
setResult(2, backIntent);
和活动A
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 2) {
final int value= intent.getIntExtra("value", 0);
}
}
抱歉耽误了你的时间。我的代码错误,但现在已修复。看起来博拉德先生在下面给出了一个很好的答案,请回复他。