我有一个Android程序,文本框很少。当value为null时,我设置错误。 我想要触摸错误应该消失,键盘显示。但是显示错误。但是当我触摸或点击时不会隐藏。
else if(txtLdays.getText().toString().trim().equals(""))
{
txtLdays.requestFocus();
txtLdays.setError("Please Enter Number of Days " );
// delay();
return false;
}
和我在oncreate上调用的编辑文本函数
txtLdays = (EditText) findViewById(R.id.etLdays);
txtLdays.setInputType(InputType.TYPE_CLASS_NUMBER);
txtLdays.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
txtLdays.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);
txtLdays.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
txtLdays.setRawInputType(Configuration.KEYBOARD_12KEY);
txtLdays.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(5,1)});
txtLdays.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View view, MotionEvent motionEvent) {
// your code here....
txtLdays.setError(null);
return false;
}
});
txtLdays.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
txtLdays.requestFocus();
txtLdays.setError(null);
}
});
答案 0 :(得分:0)
不确定问题是什么,但你可以像
一样使用else if(txtLdays.getText().toString().trim().length()==0)
{
txtLdays.requestFocus();
txtLdays.setError("Please Enter Number of Days " );
// delay();
return false;
}
和另一个选项
使用TextWatcher
txtLdays.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
//Validation.hasText(txtLdays);
your conditions here
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
答案 1 :(得分:0)
尝试清除错误当你的EditText接收焦点
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
editText.setError(null);
}
}
});