首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击“材料”概述的文本字段时显示MaterialDatePicker

单击“材料”概述的文本字段时显示MaterialDatePicker
EN

Stack Overflow用户
提问于 2021-12-03 12:54:00
回答 1查看 122关注 0票数 1

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

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

我已经成功地实现了MaterialDatePicker在单击按钮时显示出来,但是我找不到一个独白来显示对话框,而不是安卓标准的安卓键盘。

对此有什么建议吗?

活动XML:

代码语言:javascript
复制
<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"/>

活性:

关于创建:

代码语言:javascript
复制
edtStartWearLensDate = findViewById(R.id.edtStartWearLensDate);
edtStartWearLensDate.setOnClickListener(view -> onEdtStartWearLensDateClick());

点击文本字段

代码语言:javascript
复制
private void onEdtStartWearLensDateClick() {
        showDatePickerDialog();
}

方法来显示对话框(当从单击侦听器上的按钮调用时工作)

代码语言:javascript
复制
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());
            }
        });
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-03 13:21:09

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

代码语言:javascript
复制
<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方法:

代码语言:javascript
复制
findViewById<TextInputEditText>(R.id.text_input_edit_text).setOnClickListener(view -> onEdtStartWearLensDateClick())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70214637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档