如果edittext充满输入,请更改背景颜色

时间:2019-02-15 07:30:29

标签: android

EditText的背景色填充有我尝试过的输入(如果已聚焦)时我想更改的背景色

我尝试过android:state_focused的工作原理,如果聚焦,它会发出黄色背景,现在我希望填充时也会发生同样的事情。

This is the image here second box which is focused having yellow background and first box filled but not having yellow background I want filled box also should have yellow background

如果焦点状态的背景颜色填充后发生了变化,则应该会发生同样的情况。

3 个答案:

答案 0 :(得分:0)

您可以使用如下所示的edittext的OnTextChanged:

editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {     
        }

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

        @Override
        public void afterTextChanged(Editable editable) {

            if (editable.length()>0){
                //chnage the edittext background color if filled
            }else {
                //chnage the edittext background color if not filled
            }
        }
    });

答案 1 :(得分:0)

您可以使用TextWatcher来了解您的edittext是否充满文本,如果文本长度> 0,则可以更改其颜色。

在科特林:

yourEt.addTextChangedListener(object : TextWatcher {
            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

            }

            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {

            }

            override fun afterTextChanged(p0: Editable?) {
                when (p0?.length) {
                    0 -> yourEt.setBackgroundColor(Color.parseColor("#FFFFFF"))
                    else -> yourEt.setBackgroundColor(Color.parseColor("#FFFFCB"))
                }

            }
        })

在Java中:

yourEt.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {     
        }

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

        @Override
        public void afterTextChanged(Editable editable) {

            if (editable.length()>0){
                //chnage the edittext background color if filled
                yourEt.setBackgroundColor(Color.parseColor("#FFFFCB"))
            }else {
                //chnage the edittext background color if not filled
                yourEt.setBackgroundColor(Color.parseColor("#FFFFFF"))
            }
        }
    });

答案 2 :(得分:-1)

我现在不了解它在android中的工作方式。但是,如果您尝试检查是否失去焦点,如果文本框长度> 0,则文本框背景色=黄色。