【问题标题】:setResult called the same activity instead of calling the parent activitysetResult 调用相同的活动而不是调用父活动
【发布时间】:2016-08-17 13:00:54
【问题描述】:

我将意图从 FirstActivity 调用到 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>

【问题讨论】:

  • 从清单文件中删除这个 android:noHistory="true"

标签: android android-intent onactivityresult


【解决方案1】:

更改自:

Intent i=getIntent();

到:

Intent i=new Intent();// change this line

【讨论】:

    【解决方案2】:

    通过

    setResult(Activity.RESULT_OK, i);
    

    而不是

    setResult(1,i);
    

    【讨论】:

    • 我在那个活动中使用了片段。这会是问题吗?
    【解决方案3】:

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

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

    希望这会有所帮助!

    【讨论】:

    • ya..我试过了..它不工作..我认为 SecondActivity 在 Satck 之上。所以它调用相同的活动。如果我给 secondActivity onActivityResult 的 nohistory 将被调用数据空..
    猜你喜欢
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多