3 回答
TA贡献1830条经验 获得超3个赞
最省事儿的办法:
去掉OK按钮上的default button属性,建一个新按钮,设置default 去掉visable,作为隐藏默认按钮,这个按钮会响应回车;
在这个按钮的响应事件中,通过GetFocus获取焦点识别当前编辑框,并根据具体编辑框分别处理。
正统办法:去掉默认按钮,重载CEdit为自己的编辑框类,重载PreTranslateMessage函数,处理回车;为每个edit绑定控件变量,设置基类为新编辑框类。
TA贡献1817条经验 获得超6个赞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** * 设置发送消息的按钮和输入框 按下回车键,发送消息 */ editText = (EditText) findViewById(R.id.conversation_editText); editText.setOnKeyListener(new OnKeyListener() {
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { // 这两个条件必须同时成立,如果仅仅用了enter判断,就会执行两次 if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { // 执行发送消息等操作 return true; } return false; } }); |
添加回答
举报