3 回答

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
最省事兒的辦法:
去掉OK按鈕上的default button屬性,建一個新按鈕,設(shè)置default 去掉visable,作為隱藏默認(rèn)按鈕,這個按鈕會響應(yīng)回車;
在這個按鈕的響應(yīng)事件中,通過GetFocus獲取焦點識別當(dāng)前編輯框,并根據(jù)具體編輯框分別處理。
正統(tǒng)辦法:去掉默認(rèn)按鈕,重載CEdit為自己的編輯框類,重載PreTranslateMessage函數(shù),處理回車;為每個edit綁定控件變量,設(shè)置基類為新編輯框類。

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** * 設(shè)置發(fā)送消息的按鈕和輸入框 按下回車鍵,發(fā)送消息 */ editText = (EditText) findViewById(R.id.conversation_editText); editText.setOnKeyListener(new OnKeyListener() {
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { // 這兩個條件必須同時成立,如果僅僅用了enter判斷,就會執(zhí)行兩次 if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { // 執(zhí)行發(fā)送消息等操作 return true; } return false; } }); |
添加回答
舉報