android - 单击 fragment 中的编辑文本时如何弹出日期选择器

标签 android android-datepicker

我想显示日期选择器弹出窗口。我找到了一些例子,但我没有正确理解。我有一个编辑文本,我点击编辑文本,日期选择器对话框会弹出,在设置日期后,日期应该以 dd/mm/yyyy 格式 fragment 显示在编辑文本中。请提供示例代码或好的链接。

最佳答案

解决方案:

使您的 EditText 可点击且可聚焦 false,例如,

<EditText
    android:id="@+id/etDOB"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="false"
    android:cursorVisible="false"
    android:focusable="false"
    android:hint="Select" />

然后在你的 fragment 类中,放入下面的代码,

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.layout_xxx, container, false);

    EditText etDOB=view.findViewById(R.id.etDOB);
    etDOB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openDatePickerDialog(v);
        }
    });    
}

public void openDatePickerDialog(final View v) {
    // Get Current Date
    DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
            (view, year, monthOfYear, dayOfMonth) -> {
                String selectedDate = dayOfMonth + "/" + (monthOfYear + 1) + "/" + year; 
                switch (v.getId()) {
                    case R.id.etDOB:
                        ((EditText)v).setText(selectedDate);
                        break;                         
                }
            }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));


    datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis());        
    datePickerDialog.show();
}

关于android - 单击 fragment 中的编辑文本时如何弹出日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53095146/

相关文章:

android - 如何从一个 Activity 中传递字符串并在另一个 Activity 中将它们显示为 TextView

android - Android 中的 DatePicker 日历 View

DatePicker 的 Android 日历 View

Android DatePickerDialog CalendarView 的标题不一致

android - 选择出生日期对话框

针对 Facebook 问题的 Android Keyhash

java - 包 androidx.appcompat.widget 不存在 Android Studio

java - 即使应用程序关闭也显示警报通知

android - gradle.属性。未使用的属性(property)

android - DatePicker 导致在 LayoutEditor 中呈现期间引发异常