2015-06-10 62 views
1

的View.OnKeyListener我有一個EditText觀點我RelativeLayout,我可以捕捉到軟輸入鍵盤的鍵碼KEYCODE_ENTER (int 66)。這是關鍵的聽衆:IME_ACTION_DONE似乎摧毀Android上

myedittext.setOnKeyListener(new View.OnKeyListener() 
    { 
    @Override 
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    { 
     Log.d("softinput", "key received!"); 
    } 
    }); 

的問題是,軟鍵盤顯示標有「下一步」的關鍵,我需要它,以顯示「完成」。當我(成功)更改爲「完成」使用API​​的關鍵是:

myedittext.setImeOptions(EditorInfo.IME_ACTION_DONE); 

的鍵偵聽器停止工作,我可以不再接收任何的鍵偵聽器。 LogCat不顯示任何內容。它從字面上停止工作。當我刪除上面的代碼行時,一切再次運行,但鍵顯示「下一步」。

我猜測這是清除一些其他標誌所需的通知鍵,但使用EditorInfo.IME_ACTION_NEXT工程完美,但軟鍵,當然顯示「下一步」。

有人知道這個解決方法嗎?或者爲什麼會發生這種情況?

謝謝。

回答

0

你說你有一個EditText,但你的變量是「mytextview」。您是否正確設置的鍵偵聽到的EditText

+0

這僅僅是個變量持有的觀點,但它實際上是一個EditText視圖。爲了清晰,我修改了我的帖子。 – Brian

0

imeOptions更改爲在XML中而不是在代碼中完成的操作。 添加以下到edittext標籤,

android:imeOptions="actionDone" 
+0

沒有XML。 EditView是在運行時以編程方式創建的。 – Brian