繁体   English   中英

如何通过比较值更改EditText字段的背景颜色?

[英]How do I change background color of EditText fields by comparing values?

我正在android studio上做一个小应用程序,我有不同的EditText字段,我想根据内部值将背景更改为3种颜色。 如果值等于目标,则为1;如果目标小于目标,则为1;如果大于等于(<,=,>),则最后一个。 我已经在样式类别中设置了颜色,但是我不知道如何在main.java上编写代码,以便它可以识别EditText字段并根据与目标相比给出的值更改颜色。

文字观察器

editText.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub
    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
    }
});

但是,您想使用它。 您可以在用户输入其消息时,或者在他们单击按钮等时进行操作。

要使用它,您可以执行以下操作(在方法旁边)

if(s.equals("1")){
    editText.setBackgroundResource(getResources().getColor(R.color.blue));
}

首先,使用findViewById获取对要比较的EditText字段的引用,并将其分配给变量:

EditText enteredValueEditText = findViewById(R.id.entered_value_edittext);

接下来,从EditText字段中检索值:

String value = enteredValueEditText.getText().toString().trim();

转换为整数:

int valueInt = Integer.parseInt(value);

然后,将其与目标值进行比较,并使用setBackgroundColor命令适当设置背景色:

if (goal > valueInt) {    
  enteredValue.setBackgroundColor(getResources().getColor(R.color.green));
} else if (goal < valueInt) {
    enteredValue.setBackgroundColor(getResources().getColor(R.color.red));
} else if (goal == valueInt) {
 enteredValue.setBackgroundColor(getResources().getColor(R.color.blue));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM