在App开发的过程中,有时需要对输入信息做信息进行过滤并提示用户。例如在使用EditText时,用户输入信息有误,友好的交互是提示用户。当然提示方式有很多,例如:Toast,Dialog,自定义效果等。其实EditText有一个继承自TextView的一个setError方法,来看看是什么效果吧。
UI效果:
说明:
- Set:设置错误信息,含有默认图片;
- Set with icon:设置含有自定义图片的错误信息;
- Clear:清除错误信息;
点击Set后效果:
点击Set with icon效果:
点击Clear效果:
代码:
public class TestEditTextActivity extends Activity implements OnClickListener {
private EditText editText;
private Button setButton;
private Button setWithIconButton;
private Button clearButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.editText1);
setButton = (Button) findViewById(R.id.button1);
setButton.setOnClickListener(this);
setWithIconButton = (Button) findViewById(R.id.button3);
setWithIconButton.setOnClickListener(this);
clearButton = (Button) findViewById(R.id.button2);
clearButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
editText.setError(editText.getText());
break;
case R.id.button2:
editText.setError(null, null);
// editText.setError(null);
break;
case R.id.button3:
Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
drawable.setBounds(0, 0, 20, 20);
editText.setError(editText.getText(), drawable);
break;
default:
break;
}
}
}
说明:
- 设置错误信息是通过EditText的setError方法;
- 清除错误信息时,同样是调用setError方法,此时参数为null即可;
- 无论图片是否默认,清除的两个方法可以任意使用;
多说一句:EditText还有许多其它属性,在此不做赘述!:)