android - 在 Android 中,如何使登录按钮相对于 EditText 禁用?

标签 android button android-edittext android-ui android-button

如果 EditText 为空,则必须禁用登录 Button。如果 EditText 有一些文本,则必须启用登录 Button。那么你可以在 Instagram 登录上看到这个方法。

两个字段都是空的,登录 Button 已禁用。

enter image description here

这里的密码字段是空的,所以登录按钮仍然是禁用的。

enter image description here

此处用户名和密码字段均不为空,因此登录按钮已启用。

enter image description here

如何实现这些步骤?? 这是我的代码,它不起作用..

EditText et1,et2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login_check);
    et1 = (EditText) findViewById(R.id.editText1);
    et2 = (EditText) findViewById(R.id.editText2);
    Button b = (Button) findViewById(R.id.button1);

    String s1 = et1.getText().toString();
    String s2 = et2.getText().toString();

    if(s1.equals("")|| s2.equals("")){
        b.setEnabled(false);
    } else {
        b.setEnabled(true);
    }
}

最佳答案

这就是你要找的东西:

private EditText et1,et2;
//  create a textWatcher member
private TextWatcher mTextWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
    }

    @Override
    public void afterTextChanged(Editable editable) {
        // check Fields For Empty Values
        checkFieldsForEmptyValues();
    }
};

void checkFieldsForEmptyValues(){
    Button b = (Button) findViewById(R.id.button1);

    String s1 = et1.getText().toString();
    String s2 = et2.getText().toString();

    if(s1.equals("")|| s2.equals("")){
        b.setEnabled(false);
    } else {
        b.setEnabled(true);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login_check);
    et1 = (EditText) findViewById(R.id.editText1);
    et2 = (EditText) findViewById(R.id.editText2);


    // set listeners
    et1.addTextChangedListener(mTextWatcher);
    et2.addTextChangedListener(mTextWatcher);

    // run once to disable if empty
    checkFieldsForEmptyValues(); 
}

关于android - 在 Android 中,如何使登录按钮相对于 EditText 禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15002963/

相关文章:

java - android方法/java中未使用的参数

android - 如何在一天点击一次后禁用按钮并在第二天启用按钮?

jquery - 用于 web 的 Facebook 登录自定义 UI 按钮

android - 单击另一个 TextView 时如何将焦点添加到 EditText

android - 双击编辑文本时显示日期选择器对话框

android - 在 HTC 设备的 EditText 中看不到光标

android - 你如何adb到bluestacks 4?

android - 如何防止样式表加载到移动设备中

安卓系统 :ioctl LOOP_SET_FD failed

html - 在谷歌地图上创建放大和缩小工具按钮