Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未调用onActivityResult()_Android_Android Fragments_Onactivityresult - Fatal编程技术网

Android 未调用onActivityResult()

Android 未调用onActivityResult(),android,android-fragments,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_R

未调用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();
            }
        }
    }
}
android:launchMode="singleTask"
下面是我开始的
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);
android:launchMode="singleTask"
备选案文1: 如果您正在从
片段调用
startActivityForResult()
,那么您应该调用
startActivityForResult()
,而不是
getActivity().startActivityForResult()
,因为这将导致
片段
在activityresult()
上的

android:launchMode="singleTask"
如果您不确定在哪里调用
startActivityForResult()
,以及如何调用方法

android:launchMode="singleTask"
备选案文2: 由于
Activity
获取
onActivityResult()
的结果,您需要覆盖
Activity
onActivityResult()
并调用
super.onActivityResult()
将未处理的结果代码或所有代码传播到相应的
片段

android:launchMode="singleTask"
如果以上两个选项不起作用,请参考选项3,因为它肯定会起作用

android:launchMode="singleTask"
备选案文3: 从
Fragment
onActivityResult()
函数的显式调用如下

android:launchMode="singleTask"
在父级
Activity
类中,重写
onActivityResult()
,甚至重写
Fragment
类中的相同内容,并作为以下代码调用

android:launchMode="singleTask"
在父类中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane);
    fragment.onActivityResult(requestCode, resultCode, data);
}
android:launchMode="singleTask"
儿童班:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   //in fragment class callback
}
android:launchMode="singleTask"

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

getIntent().getStringExtra("teamName")
android:launchMode="singleTask"
替换为:

data.getStringExtra("teamName")
android:launchMode="singleTask"

这里的数据是结果意图。

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

我也遇到了同样的问题,我很惊讶我所看到的所有解决方案都没有提到以下内容:

android:launchMode="singleTask"
常量RESULT_OK的值为-1,如果在方法setResult中给定值1,则resultcode将不等于RESULT_OK,并且不会处理该条件。
我希望有人能对此有所帮助。

我通过从
AndroidManifest.xml
中删除android:noHistory=“true”
解决了我的问题,我也遇到了同样的问题,我通过将这些参数添加到活动中解决了这个问题:

AlwaysRetainTaskState = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop
android:launchMode="singleTask"

我有类似的问题,我的问题是关于
requestCode
参数,该参数在
startActivityForResult
方法中设置为-1。
因此,当我将
requestCode
值更改为1或0时,ActivityResult
开始被调用。

在参考@spgodara的答案后

android:launchMode="singleTask"
对于我的
SecondActivity
类,我有以下
AndroidManifest.xml

<activity android:name=".SecondActivity"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@style/AppThemeHome"
        android:windowSoftInputMode="adjustResize"/>
android:launchMode="singleTask"
下面这样的呼叫意图对我很有用:

android:launchMode="singleTask"
 Intent intent = new Intent(this, SecondActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivityForResult(intent, SECOND_ACTIVITY_REQUEST_CODE);

拆下这条线及其工作状态良好

android:launchMode="singleTask"
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

感谢您的提示。

在查看了pradip Tillaa的之后,我通过从AndroidManifest.xml中删除下面的行解决了我的问题

android:launchMode="singleTask"
android:noHistory="true"

如果你对我的回答感到满意,你能接受吗?@AkashMoradiya,如果三个都不起作用怎么办?第二个在我使用谷歌登录时有效,但在我创建意图时没有一个有效。这发生在同一个片段中(GoogleSignIn起作用,但不是目的)。我重写了父活动函数和片段的一个谢谢你,你太棒了!它在不同的API级别上的行为也不同。KitKat不喜欢我的结果活动是singleInstance,但Android N一点也不介意。“真奇怪!”克莱伦斯梁回答说。不是让它成为
singleInstance
而是让它成为
singleTop
standard
。对我不起作用,因为我的活动是
singleTask
。移除它也解决了我的问题。谢谢,伙计!自从安卓M以来,它似乎无法与
单实例
一起工作。它无法与
单实例
一起工作,因为它启动了一个新任务,并且在其中没有活动可以返回到Hanks,这正是我的问题。嗯,我们通常称为
setResult(Activity.RESULT\u OK,data)
,所以很难面对这种情况。