使用Samsung Galaxy Ace,当我实例化editText时,我尝试在Samsung Galxy SII上设置一个当前被忽略的自定义标签(没有第三方键盘)相同的行为 这是我用于设置选项
的代码eTHomeShare = (EditText) v.findViewById(R.id.eTHomeShare);
eTHomeShare.setImeActionLabel(getString(R.string.home_done),
EditorInfo.IME_ACTION_UNSPECIFIED);
这是EditText的xml定义
<EditText
android:id="@+id/eTHomeShare"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:imeActionLabel="@string/done"
android:imeOptions="actionSend"
android:inputType="text" />
编辑1
CommonsWare建议用于editText的新xml
<EditText
android:id="@+id/eTHomeShare"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical" />
正如你所看到我刚从xml中删除了2行,而在我片段的onCreateView中我使用了
eTHomeShare.setImeActionLabel(getString(R.string.home_done),
EditorInfo.IME_ACTION_SEND);
现在我看不到“完成/发送”按钮,(顺便说一句,我总是处理纵向),而是输入符号,如果我删除了initViews上的行并让原始的xml定义,那么结果相同。
编辑2 愚蠢的错误行:android:inputType =&#34; text&#34;已从xml中删除,只需使用initViews上的那个就可以正常工作。
答案 0 :(得分:4)
有许多方法可以尝试控制操作按钮上的内容,包括:
imeOptions
imeActionLabel
setImeActionLabel()
其中哪些将起作用将取决于输入法编辑器(IME,a.k.a。,软键盘)的实现。理想情况下,每个IME都会尊重所有这些...至少在单独使用时。
然而:
指定多个行为时的行为未定义
即使拥有操作按钮也不需要任何IME,更不用说尊重您对该按钮上特定标题的请求
通常,我建议在一个位置指定操作按钮标签。我的猜测是imeOptions
最有可能被尊重,所以如果您想要的标签是标准选项之一(例如,&#34;发送&#34;),请使用它。