我正在尝试通过按钮在活动之间传递connectionHelper对象。这是我的第一个活动
LoginPanelActivity.java
this.forgotPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LoginPanelActivity.this, ForgotPasswordActivity.class);
intent.putExtra("connectionHelper", connectionHelper);
v.getContext().startActivity(intent);
}
});
字符串
第二项活动:ForgotPasswordActvity.java
public class ForgotPasswordActivity extends AppCompatActivity {
ConnectionHelper connectionHelper;
SQLQuery sqlQuery;
@Override
protected void onCreate(Bundle savedInstance)
{
super.onCreate(savedInstance);
setContentView(R.layout.forgot_password_layout);
init();
}
private void init()
{
ConnectionHelper connectionHelper_ = (ConnectionHelper) getIntent().getSerializableExtra("connectionHelper");
if(connectionHelper_ == null)
{
this.connectionHelper = new ConnectionHelper();
}
this.sqlQuery = new SQLQuery(Objects.requireNonNull(this.connectionHelper).getConnection());
}
型
ConnectionHelper类实现为Serializable
public class ConnectionHelper implements Serializable {
......
}
型
我想从活动中接收connectionHelper对象到另一个活动中使用,以避免在每个活动中连接数据库。
1条答案
按热度按时间2admgd591#
你的代码看起来很好,但是要确保你的主自定义类的每个嵌套类都实现了一个Serializable接口,以避免任何序列化异常。
另外,没有必要像这样调用startActivity,因为您已经在Activity中了。
你也可以尝试Parcelable接口,而不是Serializable接口,以防它不起作用。
或
您可以使用GSON库将对象转换为String,并使用Intent在Activity之间传递它,但请记住,当您想要使用它时,请使用GSON将其转换回对象。