2014-04-07 21 views
1

這只是一個非常基本的問題。爲什麼它在模擬器上按下我的「真正的鍵盤」進入,但沒有按下我的手機上的「輸入」。它只是創造一條新線。按「回車」在模擬器中工作,但不在電話上

myEditText.setOnKeyListener(new View.OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) {     
       if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) 
         || (keyCode == KeyEvent.KEYCODE_ENTER)) { 
        todoItems.add(0, myEditText.getText().toString()); 
        aa.notifyDataSetChanged(); 
        myEditText.setText(""); 
        return true; 
       } 
      } 
      return false; 
     } 

    }); 

enter image description here

回答

0

這是一個老問題,似乎還沒有到解決。這些情況有一個解決方法。簡單地採取了EditText(或任何View那麼可能需要這一點,併爲它分配一個onEditorActionListener,就像這樣:

final EditText editor = (EditText) findViewById(R.id.myEditText); 
editor.setOnEditorActionListener(EnterOnText); 

現在定義EnterOnText實現這樣的:

TextView.OnEditorActionListener EnterOnText = new TextView.OnEditorActionListener() { 
    public boolean onEditorAction(TextView view, int actionId, KeyEvent event) { 
    if (actionId == EditorInfo.IME_ACTION_GO) { 
     final String msg = view.getText().toString(); 
     if (!msg.isEmpty()) { 
     // Do whatever you need here 
     ... 
     } 
    } 
    return true; 
    } 
}; 

現在,簡單地改變佈局的imeOptions屬性:

android:imeOptions="actionGo" 

這將,相反,可能使喲你的模擬器的輸入鍵不起作用,但會(應該)在所有物理設備上進行。

+0

我現在沒有太多時間,所以也許我已經實施了錯誤..現在不適合我。但我會再試一次。但是,嚴重的是,爲什麼這樣的基礎需要解決方法? oO – Michael

+0

似乎在新版本中,輸入密鑰的實現已經發生變化,需要做。希望這可以在你獲得更多時間時有效。 – nKn

+0

剛剛意識到,用HVGA鍵盤上的鼠標按下,但那裏輸入按鈕,我用手指在手機上按它的作品。即使沒有你的解決方法。這可能是CynagonMod的事嗎? – Michael

相關問題