2010-08-17 46 views
1

我有2个的EditText窗口小部件,一个需要用户名和其它需要password.When用户在首先进入的EditText用户名,文本应验证(应该仅接受字符没有数字)时重点放在第一个EditText上。如何实现这一点。 当用户输入错误的数据时,需要使用EditText中的setError()方法显示错误消息。验证的EditText含量只要用户输入数据

回答

0

将一个KeyListener附加到EditText。

上的“安其”事件,验证字段。

这将捕获用户输入的每个字符并对其进行验证。当EditText被更改时,android会清除错误,因此错误消息不会显示该条目是否有效,如果该条目无效,请设置错误(Username.setError(“Error”)),以便show /依然存在。

一个警告,这个工作对我的活动之一,但是当我实现了它的另一项活动中,错误的EditText没有得到清除用户输入数据时。

+0

在setOnKeyListener文档中使用此方法时需要注意的一些词: 注册在此视图中按下硬件键时要调用的回调。软件输入法中的按键通常不会触发这个监听器的方法。 – MigDus 2012-11-03 00:05:32

1

这里是您的解决方案

user= (EditText) findViewById(R.id.editText_userName); 
      user.addTextChangedListener(new TextWatcher(){ 

       @Override 
       public void afterTextChanged(Editable arg0) { 
        if (!start.getText().toString().matches("[a-z]") || start.getText().toString() == null) { 
         start.setError("Letters Only"); 
        } 
       } 

       @Override 
       public void beforeTextChanged(CharSequence arg0, int arg1, 
         int arg2, int arg3) {} 

       @Override 
       public void onTextChanged(CharSequence arg0, int arg1, 
         int arg2, int arg3) {} 

      }); 

实现相同的使用您的任何你选择的匹配模式的密码。 希望它有帮助。