Android setResult调用了相同的活动,而不是调用父活动

Android setResult调用了相同的活动,而不是调用父活动,android,android-intent,onactivityresult,Android,Android Intent,Onactivityresult,我正在从FirstActivity调用intent到SecondActivity。我使用requestCode和intent调用startActivityForResult,但在SecondActivity setResult中调用SecondActivity,而不是调用FistActivity。这是我的密码 第一个活动 Intent i = new Intent(getApplicationContext(), SecondActivity.class);

我正在从FirstActivity调用intent到SecondActivity。我使用requestCode和intent调用startActivityForResult,但在SecondActivity setResult中调用SecondActivity,而不是调用FistActivity。这是我的密码

第一个活动

Intent i = new Intent(getApplicationContext(), SecondActivity.class);                         
startActivityForResult(i,1);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Toast.makeText(getApplicationContext(),"result"+data.getStringExtra("data"),Toast.LENGTH_SHORT).show();
}
第二项活动

Intent i=getIntent();
i.putExtra("data","hi");
setResult(1,i);
finish();
显示

<activity
 android:name=".FirstActivity"
 android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
 android:theme="@style/MyMaterialTheme"

 android:screenOrientation="portrait">
<intent-filter>
    <data android:scheme="example"/>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
<activity
    android:name=".SecondActivity"
    android:theme="@style/MyMaterialTheme"
    android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
    android:screenOrientation="portrait">
</activity>

更改自:

Intent i=getIntent();
致:

更改为:

Intent i=getIntent();
致:

通过

而不是

setResult(1,i);
通过

而不是

setResult(1,i);

您必须通过拥有一个新的意图对象并最终完成当前活动来实现它

Intent resultIntent = new Intent();
resultIntent.putExtra("data","hi");
setResult(Activity.RESULT_OK, resultIntent);
finish();

希望这有帮助

你必须通过拥有一个新的意图对象并最终完成当前的活动来实现它

Intent resultIntent = new Intent();
resultIntent.putExtra("data","hi");
setResult(Activity.RESULT_OK, resultIntent);
finish();

希望这有帮助

从清单文件中删除此android:noHistory=“true”删除此android:noHistory=“true”从您的清单文件中,我在该活动中使用了片段..这会是问题吗?.我在该活动中使用了片段..这会是问题吗?.是的..我尝试了..它不起作用..我认为SecondActivity位于Satck之上。因此它校准了相同的活动。如果我在activity上提供SecondActivity的nohistory,结果将是使用数据null调用..是..我尝试了..它不起作用..我认为SecondActivity位于Satck之上。因此它校准相同的活动。如果我在ActivityResult上为SecondActivity提供nohistory,则将使用数据null调用。。