imeoptions android,android:imeOptions="actionDone"

本文介绍了如何通过设置EditText的ImeOptions属性,改变软键盘Enter键的文字或图案,例如从"完成"变为"搜索",并展示了不同选项的效果。同时,讲解了如何监听并响应键盘事件,实现特定操作,如发送消息或跳转到下一个输入框。
摘要由CSDN通过智能技术生成

把EditText的Ime Options属性设置成不同的值,Enter键上可以显示不同的文字或图案actionNone : 回车键,按下后光标到下一行actionSend : SendactionNext : Next

251f8df5864363e227ca3ce04143db19.png

actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框

设置android:imeOptions="actionDone" 可能监听不到键盘的是事件KeyEvent.KEYCODE_DPAD_CENTER  或者KeyEvent.KEYCODE_ENTER事件

可以 实现 setOnEditorActionListener 的onEditorAction

在EditorInfo的说明中能够找到。列举如下:

IME_ACTION_DONE

IME_ACTION_GO

IME_ACTION_NEXT

IME_ACTION_NONE

IME_ACTION_PREVIOUS

IME_ACTION_SEARCH

IME_ACTION_SEND

IME_ACTION_UNSPECIFIED

软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:

actionUnspecified  未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.效果:

4c4cf66f9d661e906abcb8c552971778.png

actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE 效果:

4c4cf66f9d661e906abcb8c552971778.png

actionGo 去往,对应常量EditorInfo.IME_ACTION_GO 效果:

7a1120d9ecbda5d7c7add3f2692e65f1.png

actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH 效果:

dd44031a6114e518818f9e8b4e9dfc81.png

actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND 效果:

a5ab45bcfa93235d1a2b33e61828d5f9.png

actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT 效果:

c55a1de351454f63f4aeb4678ac7b922.png

actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE 效果:

588adf3603a1692316650852a5d0d1f7.png

private TextView.OnEditorActionListener mWriteListener =new TextView.OnEditorActionListener() {public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {// If the action is a key-up event on the return key, send the messageif (actionId == EditorInfo.IME_NULL && event.getAction() == KeyEvent.ACTION_UP) {String message = view.getText().toString();sendMessage(message);}if(D) Log.i(TAG, "END onEditorAction");return true;}};

public static final int KEYCODE_SHIFT_RIGHT     = 60;

public static final int KEYCODE_TAB             = 61;

public static final int KEYCODE_SPACE           = 62;

public static final int KEYCODE_SYM             = 63;

public static final int KEYCODE_EXPLORER        = 64;

public static final int KEYCODE_ENVELOPE        = 65;

public static final int KEYCODE_ENTER           = 66;

public static final int KEYCODE_DEL             = 67;

public static final int KEYCODE_GRAVE           = 68;

public static final int KEYCODE_MINUS           = 69;

public static final int KEYCODE_EQUALS          = 70;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值