如何通过对象的活动? [英] How to pass object to an activity?
问题描述
我有两个活动,NewTransferMyOwn.java和FromAccount.java
I have two activities, NewTransferMyOwn.java and FromAccount.java
当我从NewTransferMyOwn.java到FromAccount.java,我写code如下
When I go from NewTransferMyOwn.java to FromAccount.java, I do write code as following
Intent i = new Intent(NewTransferMyOwn.this, FromAccount.class);
startActivityForResult(i, FROM_ACCOUNT);
当我来自FromAccount.java到NewTransferMyOwn.java回来的话,我想通过类的一个完整的对象的语句
When I do come back from FromAccount.java to NewTransferMyOwn.java, then I want to pass a complete object of class Statement
我不写code为
Statement st = ItemArray.get(arg2);//ItemArray is ArrayList<Statement>, arg2 is int
Intent intent = new Intent(FromAccount.this,NewTransferMyOwn.class).putExtra("myCustomerObj",st);
我得到的错误如下的putExtra,
I do get error as following on putExtra,
更改为getIntExtra
像我一样,有再铸日至INT,有什么问题在这里,我怎么可以通过Statement对象向回活性的研究?
as I do, there is again casting st to int, what is issue over here, how can I pass Statement object towards back to acitivity?
推荐答案
您还可以通过 Serializable接口实现自定义的类
,并通过自定义对象,
You can also implement your custom class by Serializable
and pass the custom Object,
public class MyCustomClass implements Serializable
{
// getter and setters
}
再通过自定义对象的意图。
And then pass the Custom Object with the Intent.
intent.putExtra("myobj",customObj);
要取回对象
Custom custom = (Custom) data.getSerializableExtra("myobj");
更新:
要在您使用通过自定义对象的previous活动 startActivityForResult
To pass your custom Object to the previous Activity while you are using startActivityForResult
Intent data = new Intent();
Custom value = new Custom();
value.setName("StackOverflow");
data.putExtra("myobj", value);
setResult(Activity.RESULT_OK, data);
finish();
要检索的自定义对象上的previous活动
To retrieve the custom Object on the Previous Activity
if(requestCode == MyRequestCode){
if(resultCode == Activity.RESULT_OK){
Custom custom = (Custom) data.getSerializableExtra("myobj");
Log.d("My data", custom.getName()) ;
finish();
}
}
这篇关于如何通过对象的活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!