gpt4 book ai didi

Android 返回对象作为 Activity 结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:02 26 4
gpt4 key购买 nike

是否可以将对象作为子 Activity 的 Activity 结果返回给父 Activity ?就像这样:

Intent resultIntent = new Intent(null);
resultIntent.putExtra("STRING_GOES_HERE", myObject);
setResult(resultIntent);
finish();

如果可能的话,我应该如何在父 Activity 中检索myObject

我想通了,要检索数据我需要做这样的事情:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if(requestCode == REQ_CODE_CHILD) {
MyClass myObject = data.getExtra("STRING_GOES_HERE");
}
}

事情是我收到错误,无法解析方法“getExtra”....

最佳答案

你不能返回一个对象,但你可以返回一个包含你的对象的 Intent (前提是它们是原始类型,Serializable 或 Parcelable)。

在您的子 Activity 中,代码将类似于:

int resultCode = ...;
Intent resultIntent = new Intent();
resultIntent.putExtra("KEY_GOES_HERE", myObject);
setResult(resultCode, resultIntent);
finish();

在您的父 Activity 中,您需要使用 startActivityForResult 启动子 Activity :

public final static int REQ_CODE_CHILD = 1;

...
Intent child = new Intent(getPackageName(), "com.something.myapp.ChildActivity");
startActivityForResult(child, REQ_CODE_CHILD);

然后在 onActivityResult 中,您将拥有:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if(requestCode == REQ_CODE_CHILD) {
MyClass myObject = (MyClass)data.getExtras().getSerializable("KEY_GOES_HERE");
}

...
}

您可以在 Activity javadoc page 上阅读有关方法的信息.

关于Android 返回对象作为 Activity 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703691/

26 4 0
文章推荐: java - 如何在 playframework Java 上将 List 转换为 JSON