当我按下手机上的按钮时,应用程序崩溃了

时间:2018-02-19 17:40:07

标签: android onclick android-button

我对此非常陌生,这是我正在构建的第一个应用程序。问题是,当我从第一个活动按下按钮以转到第二个活动时,应用程序崩溃了。

以下是活动代码:

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();
            }
        }
    });

}

1 个答案:

答案 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文件中有一个条目