我想实现一个日期和时间选择器,它们是带有提示“日期”和“时间”的TextView,但是一旦选择了真实的日期和时间,它们就会填写实际内容。
我的xml代码是这样的
<LinearLayout
android:id="@+id/happened_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/date_picker"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clickable="true"
android:background="?attr/selectableItemBackground"
android:textSize="16sp"
android:paddingLeft="4dp"
android:paddingRight="20dp"
android:paddingVertical="15dp"
android:drawableStart="@drawable/access_time"
android:drawablePadding="25dp"
android:hint="@string/date_picker"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"/>
<TextView
android:id="@+id/time_picker"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:clickable="true"
android:background="?attr/selectableItemBackground"
android:textSize="16sp"
android:paddingHorizontal="20dp"
android:paddingVertical="15dp"
android:hint="@string/time_picker"/>
</LinearLayout>
但是当我启用对讲模式时,它将显示“日期日期”和“时间”。
我还动态设置contentDescription,
我在string.xml中定义
<string name="desc_date_picker">Happened date: <xliff:g id="date" example="Dec 14, 2018">%s</xliff:g></string>
<string name="desc_time_picker">Happened time: <xliff:g id="date" example="10:39 AM">%s</xliff:g></string>
并在设置新值时将其设置为dateField和timeField
dateField.setContentDescription(getString(R.string.desc_date_picker,date)); timeField.setContentDescription(getString(R.string.desc_time_picker,time));
在对讲模式下,它将显示“发生日期:2018年12月14日”和“发生时间:下午12:00”
我希望在TextView中只有提示时会显示“日期”和“时间”,并在其他内容充满时显示为“发生日期:2018年12月14日”和“发生时间:12:00 PM”内容。我尝试设置setHint(null),但我不想这样做,因为如果旋转,它将丢失提示文本,并且在这种情况下无法解析“日期”。