我在android studio上制作了一个小应用程序,我有不同的EditText字段,我想根据里面的值将背景更改为3种颜色。 1表示if值等于goal,1表示小于目标,1表示更多(<,=,>)。我已经在样式类别中设置了颜色,但我不知道如何在main.java上创建代码,以便它识别EditText字段并根据与目标比较时给出的值更改颜色。
答案 0 :(得分:0)
文字观察者
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));
}
答案 1 :(得分:0)
首先,使用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));
}