当前位置: 首页 > 知识库问答 >
问题:

尝试对空对象引用调用虚拟方法“void Android.Widget.Button.SetEnabled(boolean)”

宋建本
2023-03-14
 private Button buttonLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
Button buttonLogin = (Button)findViewById(R.id.sign_in_button);
    buttonLogin.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {

            new LoginTask().execute(
            ((EditText)findViewById(R.id.account)).getText().toString(),
            ((EditText)findViewById(R.id.password)).getText().toString()
            );

        }
    });

    // Set up the login form.
enter code here
}


private class LoginTask extends AsyncTask<String, String, String> {
    LoginTask() {
       buttonLogin.setEnabled(false);
    }

请帮我一把,我会很感激的。

共有1个答案

常元章
2023-03-14

您有一个局部变量Button buttonLogin和一个声明为字段的变量。在onCreate方法中,您将buttonLogin设置为局部变量,因此,字段不会初始化。

您需要将onCreate方法中的代码更改为

buttonLogin = (Button) findViewById(R.id.sign_in_button);

或者如果你两个都想要...

Button buttonLogin = (Button) findViewById(R.id.sign_in_button);
this.buttonLogin = buttonLogin;
 类似资料: