禁用按钮在编辑文本字段为空 [英] Disable Button when Edit Text Fields empty

查看:143
本文介绍了禁用按钮在编辑文本字段为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个文本框和一个按钮。我想禁用按钮,除非EditText上,字段不为空。我尝试了许多解决方案,在这里计算器,但他们没有工作。这是我的code:

I have two text fields and a Button. I want to disable the Button unless both EditText-Fields are not empty. I tried many solutions here at stackoverflow, but they don't work. Here is my code:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class RegisterActivity extends Activity {

    private EditText editText1;
    private EditText editText2;

    //TextWatcher
    private TextWatcher textWatcher = 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) {
            checkFieldsForEmptyValues();
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register_activity);


        editText1 = (EditText) findViewById(R.id.reg_password);
        editText2 = (EditText) findViewById(R.id.reg_password2);

        //set listeners
        editText1.addTextChangedListener(textWatcher);
        editText1.addTextChangedListener(textWatcher);

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


        TextView loginScreen = (TextView) findViewById(R.id.link_to_login);
        loginScreen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity (new Intent(getApplicationContext(), DialogActivity.class));
                finish();
            }
        });

    }

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

        String s1 = editText1.getText().toString();
        String s2 = editText2.getText().toString();

        if(s1.equals("") && s2.equals(""))
        {
            b.setEnabled(false);
        }

        else if(!s1.equals("")&&s2.equals("")){
            b.setEnabled(false);
        }

        else if(!s2.equals("")&&s1.equals(""))
        {
            b.setEnabled(false);
        }

        else
        {
            b.setEnabled(true);
        }
    }
}

如果我开始的活动,它被禁用。但是,如果我输入一些东西,它有时能,有时不能。我只是想使按钮,如果两个编辑文本字段不为空。

If I start the activity, it is disabled. But If I type something, it sometimes enables and sometimes doesn't.. I just want to enable the button if both Edit-Text Fields are not empty.

推荐答案

您的问题就在这里:

//set listeners
        editText1.addTextChangedListener(textWatcher);
        editText1.addTextChangedListener(textWatcher);

您没有设置textWatcher到editText2,所以你总是检查条件,如果你写里面editText1

You are not setting the textWatcher to editText2, so you are always checking the condition if you write inside editText1

这篇关于禁用按钮在编辑文本字段为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆