android日历和时间选择器普通选择和dialog显示选择

    xiaoxiao2021-03-25  74

    效果展示:

    一:目录结构

    二:src源文件

    MainActivity.java文件:

    package com.peng.testdate; import java.util.Calendar; import android.media.audiofx.Visualizer.OnDataCaptureListener; import android.os.Bundle; import android.widget.DatePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener; import android.app.Activity; import android.app.DatePickerDialog; import android.app.DatePickerDialog.OnDateSetListener; import android.app.TimePickerDialog; import android.app.TimePickerDialog.OnTimeSetListener; /* * 日历和时间练习 */ public class MainActivity extends Activity implements OnTimeChangedListener { // 声明控件 private DatePicker datePicker; private TimePicker timePicker; // 声明数据 private int year; private int month; private int day; private int hour; private int minutes; // 日历 private Calendar calendar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews();// 初始化控件 // 通过Calendar类获取系统当前的时间 calendar = Calendar.getInstance(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH) + 1;// 注意这里获取到的月份比现实中少一 day = calendar.get(Calendar.DAY_OF_MONTH);// 注意参数:获取的是当前月的具体哪一天 hour = calendar.get(Calendar.HOUR_OF_DAY);// 注意参数:获取当天具体的hour minutes = calendar.get(Calendar.MINUTE); // 为控件添加监听事件 setViewsAdapter(); // 初始化datePicker initViews_DatePicker(); /**/ // 对话框形式的datePicker---(测试的时候把注释去掉,与getTimePicker_Dialog().show()不要同时去掉注释) // getDatePicker_Dialog().show(); // 对话框行驶的timePicker---(测试的时候把注释去掉,与getDatePicker_Dialog().show()不要同时去掉注释) // getTimePicker_Dialog().show(); /**/ } // 初始化控件 private void initViews() { datePicker = (DatePicker) findViewById(R.id.datePicker1); timePicker = (TimePicker) findViewById(R.id.timePicker1); } // 初始化控件--DatePicker比较特殊,init中的参数添加监听事件 private void initViews_DatePicker() { // 初始化datePicker(注意第二个参数传入的是没有进行+1操作的Month值) datePicker.init(year, calendar.get(Calendar.MONTH), day, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { MainActivity.this.setTitle(year + "年 " + (monthOfYear + 1) + "月 " + dayOfMonth + "日"); } }); } // 为控件添加监听事件 private void setViewsAdapter() { timePicker.setOnTimeChangedListener(this); } // timePicker的监听事件 @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { MainActivity.this.setTitle("修改后的时间:" + hourOfDay + "时 " + minute + "分"); } // 对话框形式的datePicker private DatePickerDialog getDatePicker_Dialog() { DatePickerDialog dpd = new DatePickerDialog(MainActivity.this, new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { MainActivity.this.setTitle(year + "年 " + (monthOfYear + 1) + "月 " + dayOfMonth + "日"); } }, year, month - 1, day); return dpd; } // 对话框形式的timePicker private TimePickerDialog getTimePicker_Dialog() { TimePickerDialog tpd = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { MainActivity.this.setTitle("修改后的时间:" + hourOfDay + "时 " + minute + "分"); } }, hour, minutes, true); return tpd; } } layout_main.xml文件:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TimePicker android:id="@+id/timePicker1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>

    三:注意事项

    Calendar获取系统当前日期: 测试dialog显示时: DatePicker初始化函数及其参数形式内置监听: TimePickerDialog函数参数:

    转载请注明原文地址: https://ju.6miu.com/read-40303.html

    最新回复(0)