【发布时间】:2017-07-12 16:46:50
【问题描述】:
我有一个 main_activity,通过按一个按钮我启动一个要完成的表单:
popup= getLayoutInflater().inflate(R.layout.pop_up, null);
signup = new SignUp(popup);
register = (Button) findViewById(R.id.sign_up);
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(MyLocalBartender.this);
alertBuilder.setView(popup);
final AlertDialog dialog = alertBuilder.create();
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
dialog.show();
}
});
您可以看到我正在使用第二个活动类 (SignUp) 来管理表单,而不是启动它的根类 (main_activity)。 在这个新类中,我设置了所有点击侦听器等,以通过实现 OnClickListener 的第三个类验证输入。
到目前为止一切正常。但现在我想测试名为 HomePage 的页面/活动,如果填写了表单,用户应该登陆该页面/活动。 所以我不知道的是我从前一个处理程序中删除了点击侦听器,并创建了一个匿名侦听器来简单地在按下注册按钮时打开新活动:
// signup_registerButton.setOnClickListener(new SignupListener(signup_emailField,signup_passwordField1,
// signup_passwordField2, signup_textTemp,signup_organiserRadio, signup_staffRadio,signup_alertMessage));
////*************************TEST******************* START
signup_registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent menu = new Intent(getApplicationContext(), HomePage.class);
startActivity(menu);
}
});
////*************************TEST******************* END
但这会返回 NullPointerException。 我尝试直接从 main_activity 启动 HomePage.class 并且它可以工作,并且我尝试从这个 REGISTER 按钮启动主要活动,但它不起作用,所以这告诉我问题出在此处.
【问题讨论】:
-
我只是通过在 main_activity 类中定义一个方法来对问题进行排序,该方法将启动新活动并从不同的类调用此方法。虽然我认为这不是一种适当的干净编码风格。有什么建议吗?
标签: java android android-activity nullpointerexception dialog