Android软键盘如何自定义“完成”按钮的文本?

24

我知道可以使用以下方式设置我的“完成”按钮

EditText.setImeOptions();

但是我该如何设置自定义文本?我是否可以指定我想要的文本?

3个回答

87

实际上,您可以为那个小蓝色按钮设置自定义文本。在xml文件中,只需使用以下内容:

android:imeActionLabel="whatever"

在您的EditText上。

或在Java文件中使用

etEditText.setImeActionLabel("whatever", EditorInfo.IME_ACTION_DONE);

我随意选择了IME_ACTION_DONE作为这个函数的第二个参数的示例。可以在此处找到所有这些操作的完整列表。

需要注意的是,这不会导致所有设备上的所有键盘都显示文本。一些键盘不支持该按钮上的文本(例如,SwiftKey)。而且有些设备也不支持它。一个好的规则是,如果你已经看到按钮上有文本,那么这将把它更改为你想要的任何内容。


2
谢谢!我一直在为 Done 文字不出现而苦恼。从来没有想到 Swiftkey 键盘不支持文本。这是一个非常大的缺陷。这应该是一个答案。 - sandalone
很高兴能帮助你,sandalone。 :-) 我试过联系Skizit了解情况,但至今未收到回复。 - Michael Alan Huff

3

您可以在xml文件中设置EditText视图的InputType

<EditText
   android:id="@+id/edt_input"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:imeActionLabel="DONE"
/>

您可以查看API文档以获取更多信息。


-7

我不确定是否可能这样做,但根据来自Android开发者网站的this article:

因为IME覆盖了应用程序,它有自己的编辑区域,显示实际包含在应用程序中的文本。 应用程序还有一些有限的机会来自定义IME的某些部分(顶部的“完成”按钮和底部的输入键标签),以改善用户体验。

所以我怀疑你不能将其更改为除预定义的“下一个”,“完成”,“发送”,“前往”和“搜索”之外的任何内容。


1
如果您查看我的答案,您会发现这是可能的。 - Michael Alan Huff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接