我在Android中遇到了问题,我尝试在对象包含其他对象的活动之间传递对象但出现错误。
解决方案?
我尝试使用serializable传递对象:
lALL.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v,
int position, long arg3) {
System.out.println(position);
Locataire l = new Locataire(getResources());
l.setNom("test");
l.setPrenom("test");
Intent intent = new Intent(MainActivity.this, Etat_lieux.class);
intent.putExtra("EDL", l);
startActivity(intent);
}
});
和
public class Locataire implements Serializable{
private String ref;
private String civilite;
private String nom;
private String prenom;
private Contact contact = new Contact();
private Adresse adresse = new Adresse();
private String DG;
private boolean IsGarantPresent;
private boolean IsColocation;
private Resources res;
public Locataire(Resources res)
{
this.res = res;
}
联系,住址
public class Contact实现Serializable {
protected String tel;
protected String mobile;
protected String fax;
protected String email;
protected String www;
ressource是第一个活动的Context getResources()
答案 0 :(得分:1)
如果您想在自己的应用中的活动之间传递数据,则应使用startActivity
,startActivityForResult
和onActivityResult
。您创建一个Bundle对象,并使用putExtra
将数据封装在其中。然后,在onCreate
方法中检索此对象。
http://developer.android.com/training/basics/intents/result.html
否则,如果您想在应用中的活动和其他应用中的活动之间传递数据,则应使用显式或隐式意图。
http://developer.android.com/training/basics/intents/sending.html
答案 1 :(得分:0)
如果你想在extras中传递对象......你必须使对象实现serializable ..并使所有它的子对象实现serializalbe .. 然后使用bundle.putSerializable(OBJECT)..