2013-09-26 60 views
2

我在EditText上應用了OnKeyListener()&它不能在三星Galaxy S3上工作,但在所有其他電話上工作...... 不知道我在做什麼錯誤...OnKeyListener()不能在三星Galaxy S3上工作

et = (EditText) findViewById(R.id.editText1); 
    et.setOnKeyListener(new OnKeyListener() { 

     @Override 
     public boolean onKey(View arg0, int keyCode, KeyEvent arg2) { 
      // TODO Auto-generated method stub 
      // You can identify which key pressed buy checking keyCode value 
      // with KeyEvent.KEYCODE_ 
      if (keyCode == KeyEvent.KEYCODE_DEL) { 
       // this is for backspace 
       Log.d("Button Event", "BackSpace Pressed"); 
       if (et.getSelectionStart() < length + 1) { 
        return true; 
       } else { 
        return false; 
       } 
      } 
      return false; 
     } 

    }); 

回答

5

你可以嘗試使用et.addTextChangedListener(新TextWatcher()..),並將所有你的邏輯,以它的afterTextChanged(...)回調。

僅在View.OnKeyListener's description上聲明的OnKeyListener()纔會從硬件鍵盤的事件中調用。

+0

Abhishek是正確的。 OnKeyListener,OnGlobaTouchEvent等等都不處理softkeyboard觸摸。經過一段時間的研究後,我發現的關鍵板事件處理的唯一解決方案是覆蓋輸入文本的對象的方法。這可能有一個原因,但我認爲這是Android的一個嚴重失敗。 –

相關問題