我正在尝试将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的结果:
我试图在其他类似的问题中找到解决方案,但没有找到。有解决这个问题的想法吗?
答案 0 :(得分:1)
当您致电get getIntent().getExtras();
时,您会得到一个捆绑包,其中包含一个捆绑包,其中包含您的DataUser
。
因此,您可以将数据用户直接放在附加功能中
intent.putExtra("user" , (Serializable) dataUser);
或者让用户脱离捆绑包
Bundle extras = getIntent().getExtras();
Bundle bundle = extras.get("bundle");
dataUser= (DataUser) bundle.getSerializable("user");
答案 1 :(得分:0)
例如,在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");
答案 2 :(得分:0)
那是因为您使用了两个捆绑,我的意思是您放入了意图捆绑,并且有了对象捆绑。
尝试
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());
}