我有很多EditText和一些TextView,当没有填写字段时,TextView需要是红色的。我有以下代码来完成此任务。
final TextView textSoftware = (TextView) findViewById(R.id.textViewSoftware);
final EditText fieldSoftware = (EditText) findViewById(R.id.fieldSoftware);
fieldSoftware.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (!fieldSoftware.getText().toString().trim().equals("")) {
textSoftware.setTextColor(Color.WHITE);
}else{
textSoftware.setTextColor(Color.RED);
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
};
});
但是,当我只为其他字段和textview重复此片段时,else语句似乎不起作用。它会像它应该变成白色,但在你擦除你的条目时不会变成红色。
答案 0 :(得分:2)
if (fieldSoftware.length()<=0) {
textSoftware.setTextColor(Color.WHITE);
}else{
textSoftware.setTextColor(Color.RED);
}
答案 1 :(得分:0)
为了更好的回应,请使用此
if (fieldSoftware.getText().toString().trim().isEmpty()) {
textSoftware.setTextColor(Color.RED);
}else{
textSoftware.setTextColor(Color.WHITE);
}