我有一个Editext。它包含属性数字和imeOptions(actionDone)。
<android.support.v7.widget.AppCompatEditText
android:id="@+id/edit_text_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="1234567890abcdefghijklmnopqrstuvwxyz....."
android:hint="@string/item_name"
android:imeOptions="actionDone"
android:maxLines="1" />
使用数字&amp;&amp ;;时未找到actionDone(Softkeyword中的完成按钮) imeOptions属性在一起。我们只能找到不会改变焦点的输入按钮。我通过跳过digit属性尝试了它,然后imeOptions正常工作。 提前致谢
答案 0 :(得分:10)
只需添加singleLine =&#34; true&#34;到您的edittext
android:singleLine = "true"
答案 1 :(得分:9)
view.setRawInputType(view.getInputType & ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE)
调用setRawInputType()
而非setInputType()
非常重要,因为后者会根据inputmethod设置keylistener,您的android:digits
属性将被丢弃。 setRawInputType()
只会更改inputmethod并且不会触及KeyListener,此外& ~EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE
将禁用多行模式,因此不会显示任何返回键,而是您所选择的imeOption应该可见。
基本上,singleLine和maxLines有不同的行为。
答案 2 :(得分:1)
我使用“android:digits”进行测试似乎会在edittext字段中出现问题,并且在将imeOptions设置为android时:imeOptions =“actionDone”我无法在键盘上显示“完成”按钮。
我用过
android:inputType="text"
没有数字设置,然后键盘显示“完成”(或根据设备的键盘打勾),然后我可以使用以下方法捕获按键:
editextField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
int result = actionId & EditorInfo.IME_MASK_ACTION;
switch(result) {
case EditorInfo.IME_ACTION_DONE:
// put your code here.
break;
}
return false;
}
});
答案 3 :(得分:0)
嗨,您可以通过编程方式设置:
EditText edit = view.findViewById(R.id.memo_edit_text);
edit.setRawInputType(InputType.TYPE_CLASS_TEXT);
edit.setImeActionLabel("DONE", EditorInfo.IME_ACTION_DONE);
edit.setImeOptions(EditorInfo.IME_ACTION_DONE);
要与IME操作相关联的EditText
它适用于textMultiLine和任何数字,只需选择您的操作