setResult调用相同的活动,而不是调用父活动
我从FirstActivity调用意图到SecondActivity.I用requestCode和Intent调用startActivityForResult,但在SecondActivity中setResult调用SecondActivity而不是调用FistActivity。这是我的代码setResult调用相同的活动,而不是调用父活动
FirstActivity
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();
}
SecondActivity
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=new Intent();// change this line
我试过了。它不工作.. –
通
setResult(Activity.RESULT_OK, i);
代替
setResult(1,i);
nope..its不工作:( –
我在那个activity中使用过片段..就是这个问题 –
你必须有意向的新对象,最后完成当前活动来实现它。
Intent resultIntent = new Intent();
resultIntent.putExtra("data","hi");
setResult(Activity.RESULT_OK, resultIntent);
finish();
希望这有助于!
亚..我试过..它不工作..我认为SecondActivity是最重要的Satck.so其caling相同的activity.if我给secondActivity noAistory onActivityResult将被称为数据null .. –
从你的清单文件中删除这个android:noHistory =“true” – Vickyexpert