首页 > 解决方案 > 在获取空对象的活动之间传递对象

问题描述

我正在尝试将 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());
 }

当我调试时,这是我在注册活动中得到的: 代码注册活动

dataUser 和 bundle 不为空

这是 LoginActivity 中的结果:

登录 getSerializable

数据用户为空

我试图在其他类似问题中找到解决方案,但没有找到。解决这个问题的任何想法?

标签: javaandroid

解决方案


当您调用 get 时getIntent().getExtras();,您将获得一个包含一个包含您的DataUser.

因此,您可以将数据用户直接放在附加功能中 intent.putExtra("user" , (Serializable) dataUser);

或者让用户退出捆绑包

Bundle extras = getIntent().getExtras();
Bundle bundle = extras.get("bundle");
dataUser= (DataUser) bundle.getSerializable("user");

推荐阅读