碰巧我有一个 textPersonName 类型的编辑文本,当我将焦点传递给另一个日期类型的编辑文本时,它会向我显示虚拟键盘,但我不希望它显示给我,因为我想要一个包含 DatePicker 的对话框(我已经有了)
这个问题已经被问过了,我读到的解决方案是:
TuEditText.setInputType(InputType.TYPE_NULL);
在xml中:
android:inputType="none"
但这只会删除焦点,我必须单击 EditText 以显示 DatePicker 对话框,我希望它保持焦点但不显示虚拟键盘并显示我的 DatePicker 对话框
我看到的另一个解决方案是使用以下代码从 EditText 日期中删除焦点:
android:focusable="false"
但这不是我打算做的,因为当我移除焦点时,我必须单击 EditText 以显示 DatePicker 对话框我重复我打算保持焦点但不显示虚拟键盘并显示我的 DatePicker 对话框
这是xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/txt_practica"
android:hint="Practica"
android:layout_marginTop="9dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="date"
android:ems="10"
android:hint="Fecha de uso"
android:id="@+id/txt_fechadeuso"
android:layout_below="@+id/txt_practica"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="16dp"
android:onClick="mostrarCalendario" />
</RelativeLayout>
你可以试试这个:
也尝试使用OnFocusChangeListener:
早上好,通过
focusable=false
onTouchListener 打开 DatePicker,如果仍然需要单击,可以这样做:在这些情况下,我通常会做一个假的editText,基本上它是一个textView,在后台有一个自定义的linearLayout,使它看起来像一个editText,因为自定义一个棒棒糖前的TextView会导致问题。
最后我给你一个隐藏键盘的简单方法:
一切顺利
您正在寻找的是禁用 android 虚拟键盘,我们必须为此执行以下操作: 1.- 我们必须转到 AndroidManifest.xml。2.- 在其中我们必须添加以下内容:
3.- 之后我们清理 android 解决方案,当用户选择 edittext 时,android 虚拟键盘将被隐藏。
朋友尝试将以下属性 android:windowSoftInputMode="stateHidden" 放在清单中:
您只需输入 Edittext 的属性(XML。):
将focusable设置为“false”将阻止输入,因此不会出现键盘,而将clickable设置为“true”它将是可点击的,因此会出现日历。