2014-02-12 172 views

回答

2

您必须查看层次加载的时候调用findViewById()真正得到视图的情况下否则会为空。

在你的下面的代码的观点是从两个不同的布局,只有从当前布局的意见将被初始化和其他人将是无效造成NullPointerException

login = (Button) findViewById(R.id.button1); 
register = (Button) findViewById(R.id.button2); 
r_username = (EditText) findViewById(R.id.username); 
r_password = (EditText) findViewById(R.id.password); 
r_email = (EditText) findViewById(R.id.email); 
username = (EditText) findViewById(R.id.editText1); 
password = (EditText) findViewById(R.id.editText2); 
registerForm = (Button) findViewById(R.id.register); 

而且在你的下面的代码已设置点击监听registerForm通过类型转换按钮进入OnClickListener按钮,可引起ClassCastException:你的按钮

register.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     setContentView(R.layout.register); 
     registerForm.setOnClickListener((OnClickListener) register); 
    } 
}); 
1

检查并确认该领域是否存在于activity_main.xml中 。

login = (Button) findViewById(R.id.button1); 
register = (Button) findViewById(R.id.button2); 
r_username = (EditText) findViewById(R.id.username); 
r_password = (EditText) findViewById(R.id.password); 
r_email = (EditText) findViewById(R.id.email); 
username = (EditText) findViewById(R.id.editText1); 
password = (EditText) findViewById(R.id.editText2); 
registerForm = (Button) findViewById(R.id.register); 
1

activity_main布局不具有视图ID为register和你registerform仍然null

获取参考register观点与findViewById()当您的视图层次实际上有这种看法,即第二setContentView()后(有另一个setContentView()是不是顺便说一个好主意)。

此外,你应该在问题中包含相关的代码和异常堆栈跟踪,而不仅仅是链接到一个github项目。

0

Intiallize你的按钮,在你的活动EditTexts ..

这样: -

login = (Button) findViewById(R.id.button1); 
register = (Button) findViewById(R.id.button2); 
r_username = (EditText) findViewById(R.id.username); 
r_password = (EditText) findViewById(R.id.password); 
r_email = (EditText) findViewById(R.id.email); 
username = (EditText) findViewById(R.id.editText1); 
password = (EditText) findViewById(R.id.editText2); 
registerForm = (Button) findViewById(R.id.register);