禁用登录按钮,直到表单填写android sdk

时间:2013-04-20 01:52:46

标签: android sdk

你好所有简单的问题如何禁用提交按钮,直到编辑文本被填充是if if命令还是什么?

    b = (Button)findViewById(R.id.login);  
    et = (EditText)findViewById(R.id.username);
    pass= (EditText)findViewById(R.id.password);

    if (et & pass == '  ') {

    }

    b.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog = ProgressDialog.show(Login.this, "", 
                    "Validating user...", true);
             new Thread(new Runnable() {
                    public void run() {
                        login();                          
                    }
                  }).start();               
        }
    });

3 个答案:

答案 0 :(得分:2)

您可能想要做的是使用TextWatcher并在onTextChanged()检查以查看每个是否为空。但是,您希望检查的文字不是View,而是检查etpass,而不是检查每个String

String etString = et.getText().toString();
String passString = pass.getText().toString();

如果他们不是emty和null,加上你想要的任何其他支票,如长度,那么

b.setEnabled(true);

答案 1 :(得分:0)

也许这不是你想要的,而是

b.setEnabled(false);

将为您禁用该按钮,然后您可以在需要时启用它:

b.setEnabled(true);

答案 2 :(得分:0)

要确保用户名不为空,我们会从EditTexttrim()获取文字,以便从字符串的开头和结尾删除换行符,空格和制表符。然后我们检查长度是否大于0.我们对密码进行相同的检查,然后使用setEnabled(true)启用按钮功能。

b = (Button)findViewById(R.id.login);  
et = (EditText)findViewById(R.id.username);
pass= (EditText)findViewById(R.id.password);
b.setEnabled(false); 
if (et.getText().toString().trim().length() > 0 && 
            pass.getText().toString().length() > 0){
    b.setEnabled(true);
}

b.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        dialog = ProgressDialog.show(Login.this, "", 
                "Validating user...", true);
         new Thread(new Runnable() {
                public void run() {
                    login();                          
                }
              }).start();               
    }
});