[英]Passing an object between to activities getting null object
我試圖將dataUser對象從Register活動傳遞到Login活動。 但是登錄活動中的dataUser為空。
我的DataUser類實現了Serializable
RegisterActivity.java:
DataUser dataUser = new DataUser(null, null,null);
dataUser.setName(nameET.getText().toString());
dataUser.setSurname(surnameET.getText().toString());
dataUser.setEmail(emailET.getText().toString());
Bundle bundleID = new Bundle();
bundleID.putSerializable("user", dataUser);
Intent intent = new Intent(getApplicationContext(),LoginActivity.class);
intent.putExtra("bundle", bundleID);
startActivity(intent);
LoginActivity.java:
Bundle objectUser = getIntent().getExtras();
if (objectUser!=null){
dataUser= (DataUser) objectUser.getSerializable("user");
emailET.setText(dataUser.getEmail());
}
當我調試時,這是我在“注冊活動”中得到的:
這是LoginActivity中的結果:
我試圖在其他類似的問題中找到解決方案,但沒有找到。 有什么解決辦法嗎?
調用getIntent().getExtras();
您將獲得一個包含包含您的DataUser
的包的包。
因此,您可以將數據用戶直接放在其他intent.putExtra("user" , (Serializable) dataUser);
或者讓用戶脫離捆綁
Bundle extras = getIntent().getExtras();
Bundle bundle = extras.get("bundle");
dataUser= (DataUser) bundle.getSerializable("user");
例如,在intent.putExtra()中傳遞您的列表
Intent intent = new Intent(getApplicationContext() , LoginActivity.class);
intent.putExtra("user" , (Serializable) dataUser );
startActivity(intent);
並在NextActivity中檢索列表
Intent intent = getIntent();
dataUser= (DataUser)intent.getSerializableExtra("user");
那是因為您使用兩個包,我的意思是您放入了意圖包,並且有了對象包。
嘗試這個
Intent intent = new Intent(getApplicationContext(),LoginActivity.class);
intent.putExtra("user",dataUser);
startActivity(intent);
在第二項活動中,嘗試以下操作:
Bundle objectUser = getIntent().getExtras();
if (objectUser!=null){
dataUser= (DataUser) objectUser.getSerializable("user");
emailET.setText(dataUser.getEmail());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.