【问题标题】:Android: Can't figure how to use setImeActionLabelAndroid:不知道如何使用 setImeActionLabel
【发布时间】:2010-12-05 00:44:56
【问题描述】:

我想要做的是更改虚拟键盘中显示的默认“完成”标签。这是我尝试过的但没有任何运气:

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;
    }
});

目前我不知道如何更改该按钮上的标签。

【问题讨论】:

    标签: java android android-edittext


    【解决方案1】:

    imeActionLabel 设置显示在全屏 IME 模式(即当您的手机处于横向模式时)右上角的按钮的标签。如果要更改键盘右下角的按钮,可以将某些标志传递给imeOptions

    据我所知,对于该按钮,您仅限于一组特定的操作(请参阅here 以获取支持的标志的完整列表),但由于您似乎想要一个搜索按钮,所以您只需要要做的是稍微调整你的第一行并使用IME_ACTION_SEARCH

    mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
    

    请注意,该按钮的确切外观取决于输入法。默认的 Android 键盘显示搜索标志的放大镜,而触控输入(HTC 的键盘)似乎完全不知道该标志,仍然显示返回按钮。

    【讨论】:

    • 这很好奇。当我在模拟器中切换到横向时,软键盘不再出现。另外,我注意到消息应用程序,例如,放置了一个笑脸(“:-)”)而不是“完成”按钮。它是否使用自定义键盘布局,还是什么?顺便说一句,谢谢你的提示。
    • 软键盘没有显示出来,因为模拟器模拟了一个在横向模式下暴露的物理键盘(就像软键盘在打开时不会出现在 G1 上一样)。您可以通过修改 AVD 的 config.ini 文件,添加 hw.keyboard=no 来禁用键盘。至于消息传递应用程序,我刚刚检查了它的来源,我猜笑脸是inputType="textShortMessage" 的副产品,缺少“发送”按钮是由于imeOptions="flagNoEnterAction",但实际上我没有测试了它。请注意,触摸输入似乎忽略了这两个标志。
    • 从原始问题中的代码来看,如果您只添加此“或”代码,则可以解释物理键盘的“返回”按钮:if(actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode ()== KeyEvent.KEYCODE_ENTER)
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 2021-11-21
    • 2019-11-18
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多