Android:无法计算如何使用setImeActionLabel
问题描述:
我想要做的是更改虚拟键盘中出现的默认“完成”标签。这里就是我没有任何的运气尝试:Android:无法计算如何使用setImeActionLabel
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);
我上午能,然而,处理该按钮的点击,这一点:
mSearchInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
performSearch();
return true;
}
return false;
}
});
我无能,如何此刻我可以更改该按钮上的标签。
答
imeActionLabel
为全屏幕IME模式(即手机处于横向模式)时右上角显示的按钮设置标签。如果要将按钮更改为键盘右下角,则可以将某些标志传递给imeOptions
。
据我所知,对于那个按钮,你被限制在一组特定的操作中(请参阅here了解支持的标志的完整列表),但由于你似乎想要一个搜索按钮,所有你必须做的是稍微调整你的第一线,并使用IME_ACTION_SEARCH
:
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
你要知道,这个按钮的确切外观将取决于输入法。默认的Android键盘显示搜索标志的放大镜,而触摸输入(HTC的键盘)似乎完全不知道该标志,仍显示返回按钮。
这很奇怪。当我在模拟器中切换到横向时,软键盘不再出现。 此外,我注意到消息应用程序,例如,把笑脸(“:-)”),而不是“完成”按钮。它使用自定义键盘布局还是什么? 感谢您的提示,顺便说一下。 – Felix 2009-10-09 11:28:04
软键盘没有显示出来,因为仿真器模拟了横向模式下暴露的物理键盘(就像将软键盘打开时软键盘不会出现在G1上一样)。您可以通过修改AVD的config.ini文件来禁用键盘,并添加'hw.keyboard = no'。 至于消息应用程序,我刚刚检查了它的源代码,并且我猜测笑脸是inputType =“textShortMessage”的副产品,缺少“发送”按钮是由于“imeOptions =” flagNoEnterAction“',但我没有真正测试过它。请注意,触摸输入似乎忽略了两个标志。 – mernen 2009-10-09 22:45:02
从原始问题的代码中,如果你只是添加这个“OR”代码,你可以考虑物理键盘的“返回”按钮:if(actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode()== KeyEvent.KEYCODE_ENTER ) – CircuitBreaker716 2012-01-24 05:54:17