该应用程序基本上(截至目前)是一个登录/注册页面 我在切换活动时遇到问题...当我添加setOnClickListener时,应用程序崩溃了。
class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
configureBtnSignUp();
configureBtnResetPassword();
}
private void configureBtnSignUp(){
Button btnSignUp = (Button) findViewById(R.id.btn_signup);
btnSignUp.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
startActivity(new Intent(LoginActivity.this, SignUpActivity.class));
}
});
}
private void configureBtnResetPassword(){
Button btnResetPassword = (Button) findViewById(R.id.btn_reset_password);
btnResetPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(LoginActivity.this, PwRecoverActivity.class));
}
});
}
}
这是错误代码
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at kardacorporation.bandme.LoginActivity.configureBtnSignUp(LoginActivity.java:24)
at kardacorporation.bandme.LoginActivity.onCreate(LoginActivity.java:18)
答案 0 :(得分:2)
原因是您正在尝试将听众设置为在您的布局中没有引用的按钮。
问题与btn_reset_password
有关请确保您的布局中有一个ID为 btn_reset_password 的按钮
在您的activity_login中:
<Button
android:id="@+id/btn_reset_password"
...
</Button>
很好的编码!
答案 1 :(得分:1)
根据Logcat,您的问题是
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'
发生在
kardacorporation.bandme.LoginActivity。的 configureBtnSignUp 强>(LoginActivity.java:24)`
因此我们应首先检查configureBtnSignUp
方法。
确保您的xml代码中包含 btn_signup ID。
<Button
android:id="@+id/btn_signup"
... />
在调用configureBtnSignUp
方法之前调用configureBtnResetPassword
方法。
因此,您应该检查configureBtnResetPassword
方法。
并确保您的xml代码中包含 btn_reset_password ID。
<Button
android:id="@+id/btn_reset_password"
... />