首页 > 其他分享 >日期选择器 DatePicker

日期选择器 DatePicker

时间:2023-03-03 15:25:42浏览次数:33  
标签:DatePicker tv id 日期 date calendar 选择器 dp

新建一个空的activity,命名为:DatePickerActivity

public class DatePickerActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener {
    private TextView tv_date;
    private DatePicker dp_date;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_date_picker);
        tv_date = findViewById(R.id.tv_date);
        dp_date = findViewById(R.id.dp_date);
        findViewById(R.id.btn_date).setOnClickListener(this);
        findViewById(R.id.btn_ok).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_date) {
            Calendar calendar = Calendar.getInstance();
            DatePickerDialog dialog = new DatePickerDialog(this, this,
                    calendar.get(Calendar.YEAR),
                    calendar.get(Calendar.MONTH),
                    calendar.get(Calendar.DAY_OF_MONTH));
            dialog.show();
        } else if (v.getId() == R.id.btn_ok) {
            String desc = String.format("您选择的日期是%d年%d月%d日", dp_date.getYear(), dp_date.getMonth() + 1, dp_date.getDayOfMonth());
            tv_date.setText(desc);
        }
    }

    /**
     * 获得用户选择的具体日期
     * @param view DatePicker
     * @param year 年
     * @param month 月    注意:月份的起始值为0,所以这里要记得+1
     * @param dayOfMonth 日
     */
    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        String desc = String.format("您选择的日期是%d年%d月%d日", year, month + 1, dayOfMonth);
        tv_date.setText(desc);
    }
}

DatePickerActivity对应的xml:activity_date_picker的布局如下

<?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:padding="5dp"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn_date"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请选择日期"
        android:textSize="20sp" />

    <DatePicker
        android:id="@+id/dp_date"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:calendarViewShown="false"
        android:datePickerMode="spinner" />

    <Button
        android:id="@+id/btn_ok"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="确定"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/tv_date"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textSize="17sp" />

</LinearLayout>

日期选择器DatePicker 有2种展示风格,默认是日历风格

  • 在xml中通过 datePickerMode 来设置风格
    • 取值为calendar 代表日历风格;
    • 取值为spinner 代表下拉框风格,这时设置android:calendarViewShown="false" 日历才会消失

效果图如下所示:

  • 左边的是日历风格
  • 右边的是下拉框风格

标签:DatePicker,tv,id,日期,date,calendar,选择器,dp
From: https://www.cnblogs.com/styCy/p/17175706.html

相关文章