Android 未调用onActivityResult()
未调用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
@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)
,所以很难面对这种情况。