单击"材质大纲文本"字段时显示"材质日期选取器"



我正在开发一个小型应用程序,用户可以在其中启动活动。通过这样做,文本输入将显示在默认设置为今天日期的位置。

当点击文本字段时,MaterialDatePicker应显示为对话框。

我已经成功地实现了MaterialDatePicker在点击按钮时显示,但我找不到一个单独的解决方案来显示对话框,而不是Android标准的Android键盘。

有什么建议吗?

活动XML:

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edtStartWearLensDate"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/txtLabelWearSelectStartDate"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtLabelStartWearLensID">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

活动:

创建时:

edtStartWearLensDate = findViewById(R.id.edtStartWearLensDate);
edtStartWearLensDate.setOnClickListener(view -> onEdtStartWearLensDateClick());

点击进入文本字段

private void onEdtStartWearLensDateClick() {
showDatePickerDialog();
}

显示对话框的方法(当从按钮点击监听器调用时有效(

private void showDatePickerDialog(){
MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.datePicker();
builder.setTitleText("Select start date");
builder.setSelection(MaterialDatePicker.todayInUtcMilliseconds());
final MaterialDatePicker materialDatePicker = builder.build();
materialDatePicker.show(getSupportFragmentManager(), "DATE_PICKER");
materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Object selection) {
edtStartWearLensDate.getEditText().setText(materialDatePicker.getHeaderText());
}
});
}

尝试在TextInputEditText:中将clickablefocusable属性设置为true

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text_input_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:clickable="true"/>

并在上面调用setOnClickListener方法:

findViewById<TextInputEditText>(R.id.text_input_edit_text).setOnClickListener(view -> onEdtStartWearLensDateClick())

相关内容

  • 没有找到相关文章

最新更新