我有两个活动,NewTransferMyOwn.java和FromAccount.java
当我从NewTransferMyOwn.java转到FromAccount.java时,我会编写如下代码
Intent i = new Intent(NewTransferMyOwn.this, FromAccount.class);
startActivityForResult(i, FROM_ACCOUNT);
Run Code Online (Sandbox Code Playgroud)
当我从FromAccount.java回到NewTransferMyOwn.java时,我想传递一个完整的类Statement对象
我写代码为
Statement st = ItemArray.get(arg2);//ItemArray is ArrayList<Statement>, arg2 is int
Intent intent = new Intent(FromAccount.this,NewTransferMyOwn.class).putExtra("myCustomerObj",st);
Run Code Online (Sandbox Code Playgroud)
我在putExtra上得到如下错误,
改为'getIntExtra'
就像我一样,再次将st转换为int,这里有什么问题,如何将Statement对象传递回acitivity?
您还可以通过自定义类来实现自定义类Serializable,
public class MyCustomClass implements Serializable
{
// getter and setters
}
Run Code Online (Sandbox Code Playgroud)
然后使用Intent传递自定义对象.
intent.putExtra("myobj",customObj);
Run Code Online (Sandbox Code Playgroud)
检索您的对象
Custom custom = (Custom) data.getSerializableExtra("myobj");
Run Code Online (Sandbox Code Playgroud)
更新:
在使用时将自定义对象传递给上一个Activity startActivityForResult
Intent data = new Intent();
Custom value = new Custom();
value.setName("StackOverflow");
data.putExtra("myobj", value);
setResult(Activity.RESULT_OK, data);
finish();
Run Code Online (Sandbox Code Playgroud)
检索"上一个活动"上的自定义对象
if(requestCode == MyRequestCode){
if(resultCode == Activity.RESULT_OK){
Custom custom = (Custom) data.getSerializableExtra("myobj");
Log.d("My data", custom.getName()) ;
finish();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3895 次 |
| 最近记录: |