2010-08-17 29 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) {} 

      }); 

實現相同的使用您的任何你選擇的匹配模式的密碼。 希望它有幫助。