2010-08-17 4 views
1

2 개의 EditText 위젯이 있습니다. 하나는 사용자 이름이고 다른 하나는 password입니다. 사용자가 First EditText에서 사용자 이름을 입력하면 텍스트의 유효성을 검사해야합니다. 포커스는 첫 번째 EditText에 있습니다. 이것을 달성하는 방법. 사용자가 잘못된 데이터를 입력 할 때 EditText에 setError() 메서드를 사용하여 오류 메시지를 표시해야합니다.사용자가 데이터를 입력하자마자 EditText 내용의 유효성 확인

답변

0

EditText에 KeyListener를 연결하십시오.

'onKey'이벤트에서 필드의 유효성을 검사하십시오.

사용자가 입력하고 유효성을 검사하는 모든 문자를 감지합니다. EditText가 변경되면 안드로이드가 오류를 지우므로 항목이 유효하고 유효하지 않은 경우 오류 메시지가 표시되지 않습니다. 오류 (Username.setError ("Error"))를 설정하면 show/남아있는.

하나의 경고는 내 활동 중 하나에서 작동하지만 다른 활동에서 구현하면 사용자가 데이터를 입력 할 때 EditText 오류가 지워지지 않습니다.

+0

setOnKeyListener 문서에서이 메서드를 사용할 때주의해야 할 단어 : 이보기에서 하드웨어 키를 누를 때 호출 할 콜백을 등록합니다. 소프트웨어 입력 메소드의 키 누르기는 일반적으로이 수신기의 메소드를 트리거하지 않습니다. – MigDus

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) {} 

      }); 

당신의 선택의 어떤 일치하는 패턴을 사용하여 암호를 동일 구현입니다. 도움이 되길 바랍니다.