onActivityResult()没有被调用

onActivityResult()没有被调用。 以下是我的代码:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // Check which request we're responding to Log.e("CALLED", "OnActivity Result"); if (requestCode == TEAM_SELECTED_REQUEST_CODE) { // Make sure the request was successful if (resultCode == RESULT_OK) { try { mySelectedTeam = getIntent().getStringExtra("teamName"); txtSelectTeamCreateMatch.setText(mySelectedTeam); } catch (Exception e) { e.printStackTrace(); } } } } 

这里是我开始的SelectTeamActivity

 Intent intent=new Intent(CreateMatch.this,SelectTeamActivity.class); startActivityForResult(intent, TEAM_SELECTED_REQUEST_CODE); //overridePendingTransition(R.anim.fade_in, R.anim.fade_out); overridePendingTransition(R.anim.push_up_in, R.anim.push_up_out); Intent intent = getIntent(); intent.putExtra("teamID", teamDataList.get(position).getTeamId().toString()); intent.putExtra("teamName", teamDataList.get(position).getTeamName().toString()); setResult(1, intent); 

Solutions Collecting From Web of "onActivityResult()没有被调用"

调用onActivityResult,但使用错误的意图引用从结果意图中获取数据:

 getIntent().getStringExtra("teamName") 

replace为:

 data.getStringExtra("teamName") 

这里的数据是结果意图。

选项1 :

如果你从Fragment调用startActivityForResult() ,那么你应该调用startActivityForResult()而不是getActivity().startActivityForResult() ,因为它会导致FragmentonActivityResult()

如果你不确定你在哪里调用startActivityForResult()以及你将如何调用方法。

选项2:

由于Activity获得了onActivityResult()的结果,所以你需要重载ActivityonActivityResult()并调用super.onActivityResult()传递给相应的Fragment以处理未处理的结果代码或全部。

如果上述2个选项不起作用,则参考选项3,因为它一定会起作用。

备选案文3:

Fragment显式调用onActivityResult()函数,如下所示

在父Activity类中,覆盖onActivityResult() ,甚至覆盖Fragment类中的相同内容,并调用下面的代码。

在父类中:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane); fragment.onActivityResult(requestCode, resultCode, data); } 

在孩子class:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //in fragment class callback } 

我有同样的问题。 我的调用活动是“singleInstance”。 删除,解决了我的问题。

我通过从我的menifest文件中删除android:noHistory="true"来解决我的问题。

我只是有同样的问题,我很惊讶没有我看过的解决scheme提到了以下内容:

常量RESULT_OK的值是-1,如果在方法setResult中给出值1,那么结果代码将不等于RESULT_OK,条件将不会被处理。 我希望有人认为这有帮助。

我有同样的问题,我解决了通过添加这些参数的活动:

 AlwaysRetainTaskState = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop