Android返回对象作为活动结果 [英] Android return object as a activity result

查看:80
本文介绍了Android返回对象作为活动结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it possible to return object as a activity result from child activity to parent? Just something like:

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

如果可能的话,我应该如何在家长活动中检索myObject?

If it is possible, how should I retrieve myObject in parent activity?

我发现,要检索数据,我需要执行以下操作:

I figured out, that to retrieve data I need to do something like this:

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

问题是我得到了错误,无法解决方法'getExtra'....

Thing is that I get error, that can not resolve method 'getExtra'....

推荐答案

您不能返回对象,但是可以返回包含对象的意图(前提是它们是原始类型,可序列化或可打包).

You cannot return an object, but you can return an intent containing your objects (provided they are primitive types, Serializable or Parcelable).

在您的孩子活动中,代码将类似于:

In your child activity, the code will be something like:

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

在父活动中,您需要从startActivityForResult开始子活动:

In your parent activity you'll need to start the child activity with startActivityForResult:

public final static int REQ_CODE_CHILD = 1;

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

,然后在onActivityResult中,您将拥有:

and then in the onActivityResult, you'll have:

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

    ...
}

您可以在活动Javadoc页面上了解有关方法的信息.

You can read about the methods on the Activity javadoc page.

这篇关于Android返回对象作为活动结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆