我对此非常陌生,这是我正在构建的第一个应用程序。问题是,当我从第一个活动按下按钮以转到第二个活动时,应用程序崩溃了。
以下是活动代码:
private TextInputLayout password;
private View login;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button login = (Button)findViewById(R.id.btn_login);
login.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if (password.getEditText().getText().toString().equals("alex")) {
finish();
startActivity(new Intent(LoginActivity.this,MainActivity.class));
} else {
Toast.makeText(LoginActivity.this, "Wrong Input", Toast.LENGTH_SHORT).show();
}
}
});
}
答案 0 :(得分:1)
你应该有这样的陈述
password =(TextInputLayout)findViewById(R.id.your_id);
我认为这是因为密码未初始化。 (你会得到Null指针异常)
您可以像这样修改on create方法
私人EditText密码; 私人按钮登录;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
password =(TextInputLayout)findViewById(R.id.password);
login =(Button)findViewById(R.id.btn_login);
login.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if (password.getEditText().getText().toString().equals("alex"))
{
startActivity(new Intent(LoginActivity.this,MainActivity.class));
finish();
} else {
Toast.makeText(LoginActivity.this, "Wrong Input", Toast.LENGTH_SHORT).show();
}
}
});
}
并且不要忘记在MainActivity.class的manifest.xml文件中有一个条目