java - 在获取空对象的活动之间传递对象
问题描述
我正在尝试将 dataUser 对象从注册活动传递到登录活动。但是登录活动中的 dataUser 为空。
我的 DataUser 类实现了 Serializable
注册活动.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);
登录活动.java:
Bundle objectUser = getIntent().getExtras();
if (objectUser!=null){
dataUser= (DataUser) objectUser.getSerializable("user");
emailET.setText(dataUser.getEmail());
}
当我调试时,这是我在注册活动中得到的:
这是 LoginActivity 中的结果:
我试图在其他类似问题中找到解决方案,但没有找到。解决这个问题的任何想法?
解决方案
当您调用 get 时getIntent().getExtras();
,您将获得一个包含一个包含您的DataUser
.
因此,您可以将数据用户直接放在附加功能中
intent.putExtra("user" , (Serializable) dataUser);
或者让用户退出捆绑包
Bundle extras = getIntent().getExtras();
Bundle bundle = extras.get("bundle");
dataUser= (DataUser) bundle.getSerializable("user");
推荐阅读
- deep-learning - DQN 不稳定预测
- android - 在方向更改时保持虚拟键盘的更清洁方法
- c++ - 如何解决类名和函数名之间的名称冲突
- pytorch - torch.nn.Sequential 容器的并行模拟
- android - 为什么 getBSSID() 总是返回“02:00:00:00:00:00”?
- css - 在底部粘贴页脚
- node.js - 如何在 Node.JS 应用程序中使用 JWT_KEY 创建秘密字符串
- html - 水平最小化浏览器后网页中出现空白
- typescript - 在 Firebase 中使用字段而不是文档,不好的做法?
- regex - RegEx 查找包含在两个字符之间的字符串,同时排除分隔符