android 为什么我的intent在Activity之间传递对象时返回null对象?

iovurdzv  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(191)

我正在尝试通过按钮在活动之间传递connectionHelper对象。这是我的第一个活动
LoginPanelActivity.java

  1. this.forgotPassword.setOnClickListener(new View.OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. Intent intent = new Intent(LoginPanelActivity.this, ForgotPasswordActivity.class);
  5. intent.putExtra("connectionHelper", connectionHelper);
  6. v.getContext().startActivity(intent);
  7. }
  8. });

字符串
第二项活动:ForgotPasswordActvity.java

  1. public class ForgotPasswordActivity extends AppCompatActivity {
  2. ConnectionHelper connectionHelper;
  3. SQLQuery sqlQuery;
  4. @Override
  5. protected void onCreate(Bundle savedInstance)
  6. {
  7. super.onCreate(savedInstance);
  8. setContentView(R.layout.forgot_password_layout);
  9. init();
  10. }
  11. private void init()
  12. {
  13. ConnectionHelper connectionHelper_ = (ConnectionHelper) getIntent().getSerializableExtra("connectionHelper");
  14. if(connectionHelper_ == null)
  15. {
  16. this.connectionHelper = new ConnectionHelper();
  17. }
  18. this.sqlQuery = new SQLQuery(Objects.requireNonNull(this.connectionHelper).getConnection());
  19. }


ConnectionHelper类实现为Serializable

  1. public class ConnectionHelper implements Serializable {
  2. ......
  3. }


我想从活动中接收connectionHelper对象到另一个活动中使用,以避免在每个活动中连接数据库。

2admgd59

2admgd591#

你的代码看起来很好,但是要确保你的主自定义类的每个嵌套类都实现了一个Serializable接口,以避免任何序列化异常。
另外,没有必要像这样调用startActivity,因为您已经在Activity中了。
你也可以尝试Parcelable接口,而不是Serializable接口,以防它不起作用。

您可以使用GSON库将对象转换为String,并使用Intent在Activity之间传递它,但请记住,当您想要使用它时,请使用GSON将其转换回对象。

相关问题