2015-07-13 5 views
2

У меня есть editText в моем приложении, и я хочу запустить некоторый код, когда пользователь использует (пробел) в нем. Так что, пожалуйста, дайте мне немного идеи о том, как это сделать.KeyListener на EditText: Android

+0

Пробел или пробел? –

+0

@AnandSingh: "" –

ответ

3

KeyListener Не требуется KeyListener. Используйте TextWatcher для него:

((EditText)findViewById(R.id.your_edit_text)).addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      if(s != null && s.length() > 0 && s.charAt(s.length() - 1) == ' '){ 
       //dp something 
      } 
     } 
    }); 
+1

s.length >> 's.length()' –

+0

@AnandSingh, да, спасибо – Alexander

1
edittext.setOnKeyListener(new OnKeyListener(){ 

@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
      (keyCode == KeyEvent.KEYCODE_SPACE)) { 

     //do code 

     return true; 

     }   
     return false; 
    } 
}); 
0
 titleBox.addTextChangedListener(new TextWatcher() { 
       @Override 
       public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
       } 

       @Override 
       public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
        int ssidLength = charSequence.length(); 
        if (ssidLength == 0) { 
         return; 
        } 
       if (charSequence.charAt(ssidLength - 1)==' ') 
       { 
       //Do stuff here 
       } 
       } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }); 
1

Вы можете добавить textListener для него. Определите textListener в своем onCreate!

Для примера я сделал это, чтобы проверить, введен ли пользователь правильный адрес электронной почты!

 input_Mobile.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 
      checkmobile=input_Mobile.getText().toString(); 
      mobilelength=checkmobile.length(); 



      if(ss.contentEquals("")){ 

       b1.setEnabled(false); 

      } 
      if(mobilelength==10){ 

       b1.setEnabled(true); 

       }else { 
       b1.setEnabled(false); 


       } 

     } 

В дополнение к этому имеются три функции.

  1. OnTextChanged
  2. beforeTextChanged
  3. afterTextChanged

вы можете принять использование, что в соответствии с тем, что вам нужно.

Надеюсь, это поможет вам

Спасибо.

Смежные вопросы