2015-07-13 64 views
2

我在我的應用程序中有一個editText,我想在用戶使用(空格)時運行一些代碼。所以,請給我一點關於如何做到這一點的想法。EditText上的KeyListener:Android

+0

空間按鈕或「」空間? –

+0

@AnandSingh:「」 –

回答

3

你不需要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它。在你的onCreate中定義textListener!

例如我做了這個檢查用戶是否輸入了正確的電子郵件!

 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

您可以使用的根據你需要什麼。

希望它可以幫助你

謝謝。