我有4个edittext,我想实现一个带控件值的TextWatcher。
Et1Burro.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable value) {
// you can call or do what you want with your EditText here
Dvalue = GetEditValue(value);
double et4tot = 0, et2fibra = 0, et3zucc = 0;
// et1burro + et2fibra = et4tot
// et1burro + et2fibra + et3zucc = 100
try {
et4tot = Double.parseDouble(Et4Tot.getText().toString());
} catch (NumberFormatException e) { e.printStackTrace(); }
try {
et2fibra = Double.parseDouble(Et2Fibra.getText().toString());
} catch (NumberFormatException e) { e.printStackTrace(); }
try {
et3zucc = Double.parseDouble(Et3Zucc.getText().toString());
} catch (NumberFormatException e) { e.printStackTrace(); }
if ((Dvalue < 1) || (Dvalue > 100) || ((Dvalue + et2fibra) != et4tot ) || ((Dvalue + et2fibra + et3zucc) != 100 ))
{
//segnala errore
Et1Burro.setTextColor(getActivity().getBaseContext().getResources().getColor(R.color.Red));
}else
Et1Burro.setTextColor(getActivity().getBaseContext().getResources().getColor(R.color.Black));
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});
如果范围编号错误,我想要一个红色数字,如果是正确的话,我想有一个黑色数字。
我认为最好是实现AsynckTask来控制数字吗?
例如4 edittext值是: A,B,C,d
正确值的关系是:
A+B = D
A+B+C = 100
C = 100 - D
正确的示例值是A = 35,B = 35,C = 30,D = 70 但是如果在第一次编辑(A)中用户插入第一个字符ex 35,则程序以RED值响应,因为另一个值为0,并且当用户使用值35,35,30,70编译所有edittext时黑色的价值是最后一个。 我希望明白......
答案 0 :(得分:1)
因为您只更新一个编辑文本的颜色
我建议的是,