gpt4 book ai didi

Android:setResult 未将结果返回给父 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:43 28 4
gpt4 key购买 nike

我已经使用 startActivityForResult 从父 Activity 开始了一个子 Activity 。在子 Activity 中执行所需的功能后,我使用 setResult 设置结果。但是我没有从 child Activity 中获得 parent Activity 的结果。

这是我的代码。

下面是我如何从父 Activity 中调用我的子 Activity 。

 Intent i = new Intent(MainActivity.this, Child.class);
i.putExtra("ID", intID);
i.putExtra("aID", aID);
i.putExtra("myMsg", myMsg);
startActivityForResult(i, 1);

这就是我设置子 Activity 结果的方式。

 @Override
public void onBackPressed() {
super.onBackPressed();
Intent resultInt = new Intent();
resultInt.putExtra("Result", "Done");
setResult(Activity.RESULT_OK, resultInt);
finish();
}

这是我的onActivityResult

   @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == 1) {

if (resultCode == Activity.RESULT_OK) {
if(data!=null) {
Toast.makeText(MainActivity.this, "Data received", Toast.LENGTH_SHORT).show();
}
}
}

}

这里,当我检查 resultCode==Activity.RESULT_OK 时,结果是错误的。我还检查了在此 if 条件之外传递的 Intent 及其返回的 null。

 <activity
android:name=".MainActivity"
android:label="Main"
android:parentActivityName=".MainPage"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.mydomain.mydomain.MainPage" />
</activity>
<activity
android:name=".Child"
android:label="Child"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme1">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.mydomain.mydomain.MainActivity" />
</activity>

谁能帮我解决这个问题。

最佳答案

修改你的onBackPressed()方法

@Override
public void onBackPressed() {

Intent resultInt = new Intent();
resultInt.putExtra("Result", "Done");
setResult(Activity.RESULT_OK, resultInt);
super.onBackPressed();
}

原因:Backpress 操作是在将结果发送给父 Activity 之前执行他的任务......

关于Android:setResult 未将结果返回给父 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044064/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com