Android原生日期选择器对话框DatePickerDialog

本文介绍了如何在Android应用中使用原生的DatePickerDialog。通过在onCreate方法获取当前日期,并展示在对话框中。文章详细阐述了在Android 4.4及5.0以上版本的显示效果,并讲解了如何实现选择器的监听,将选定的日期实时更新到TextView上。


调用Android原生日期选择器对话框就是DatePickerDialog

在Android4.4系统上效果如图:


在Android5.0以上效果如图:



1、Activity的onCreate方法中获取当时的年 ,月,日

Calendar ca = Calendar.getInstance();
mYear = ca.get(Calendar.YEAR);
mMonth = ca.get(Calendar.MONTH);
mDay = ca.get(Calendar.DAY_OF_MONTH);
2、通过按钮触发日期选择器

<

Android 开发中,使用原生组件实现一个日期选择器(DatePicker)是一个常见的需求。Android 提供了 `DatePicker` 和 `DatePickerDialog` 组件,可以方便地让用户选择日期。 以下是一个使用 `DatePickerDialog` 的完整示例,它会在点击按钮时弹出一个日期选择对话框,并显示用户选择的日期。 ### 完整示例代码 ```java import android.app.DatePickerDialog; import android.os.Bundle; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; public class DatePickerActivity extends AppCompatActivity { private TextView selectedDateText; private Button pickDateButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_date_picker); selectedDateText = findViewById(R.id.selectedDateText); pickDateButton = findViewById(R.id.pickDateButton); pickDateButton.setOnClickListener(v -> showDatePickerDialog()); } private void showDatePickerDialog() { // 获取当前日期 final Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); // 注意:月份从0开始 int day = calendar.get(Calendar.DAY_OF_MONTH); // 创建DatePickerDialog DatePickerDialog datePickerDialog = new DatePickerDialog( this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { // 设置选中的日期到TextView String selectedDate = selectedYear + "-" + (selectedMonth + 1) + "-" + selectedDay; selectedDateText.setText("你选择的日期是:" + selectedDate); } }, year, month, day ); // 显示对话框 datePickerDialog.show(); } } ``` ### 布局文件 `activity_date_picker.xml` ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/selectedDateText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请选择一个日期" android:textSize="18sp" android:layout_marginBottom="16dp"/> <Button android:id="@+id/pickDateButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择日期"/> </LinearLayout> ``` ### 代码解释 1. **`DatePickerDialog`**:这是 Android 提供的一个日期选择对话框组件,用户可以通过它选择年、月、日。 2. **`Calendar`**:用于获取当前日期。 3. **`OnDateSetListener`**:当用户选择完日期后会触发这个监听器,回调 `onDateSet` 方法。 4. **`selectedMonth + 1`**:注意 Android 的月份是从 0 开始的(0 表示一月),所以显示时需要加 1。 5. **布局文件**:包含一个 `TextView` 用于显示选中的日期,一个 `Button` 用于触发日期选择对话框。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值