android - onActivityResult() 未调用

标签 android android-fragments 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);

最佳答案

选项 1:

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

如果您不确定在 startActivityForResult() 上调用的位置以及调用方法的方式。

选项 2:

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

如果以上2个选项都不起作用,那么请引用选项3,因为它肯定会起作用。

选项 3:

FragmentonActivityResult()函数的显式调用如下

在父 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);
}

在子类中:

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

关于android - onActivityResult() 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26988038/

相关文章:

java - OnActivityResult 在 fragment 内不起作用。我该如何在我的代码上解决这个问题?

android - 当我调用 startResolutionForResult 时,onActivityResult() 没有在 fragment 中执行

android - CollapsingToolbarLayout : Change home button color when expanded

Android SQLite 条件在轮类期间失败更改

android - 如何从适配器中消除 DialogFragment?

android - 如何从 Activity 中删除 fragment ?

java - onBackPressed 之后 onActivityResult 将不起作用

android - 如果应用程序首次运行,则启动登录 Activity 而不是 MainActivity

android - 在 Android WebView 中平移后单点触摸意外滚动

java - 安卓.view.InflateException : Binary XML file line #8: Error inflating class fragment