Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:Can';我不知道如何使用setImeActionLabel_Java_Android_Android Edittext - Fatal编程技术网

Java 安卓:Can';我不知道如何使用setImeActionLabel

Java 安卓:Can';我不知道如何使用setImeActionLabel,java,android,android-edittext,Java,Android,Android Edittext,我要做的是更改虚拟键盘中显示的默认“完成”标签。以下是我在没有任何运气的情况下尝试过的: mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE); mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE); 但是,我能够通过以下方式处理对该按钮的点击: mSearchInput.setOnEditor

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

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

据我所知,对于该按钮,您仅限于一组特定的操作(有关支持的标志的完整列表,请参阅),但由于您似乎想要一个搜索按钮,所以您所要做的就是稍微调整第一行并使用
IME\u ACTION\u search

mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

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

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