在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还有许多其它属性,在此不做赘述!:)