【时间修改】DatePicker和TimePicker 的使用--2016815

    xiaoxiao2025-11-13  6

    //千里之行,始于足下。 //这是我第一次写博客,麻烦各位有吐槽就来吧~ //不然就留我一人孤芳自赏了


    Ps_1: //段落注释快捷键:选中段落后按Ctrl+/,会加上全部//,再按一次去掉//;按shift+Ctrl+/,会加上/* */

    PS_2: 在Android中这种弹出式的UI一般都不用在布局文件中声明,直接用类就可以搞定 一般要显示他们都要显示地调用show()方法,类似Toast这个类也是一样。


    1:监听日期的改变

    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Toast.makeText(MainActivity.this,"现在时间:"+year+"-"+(monthOfYear+1) +"-"+dayOfMonth, 0).show(); //改变标题的日期 tv_date.setText("现在日期:"+year+"-"+(monthOfYear+1)+"-"+dayOfMonth); } //----------------------------------// time_picker.setIs24HourView(true);//设置时间为24小时制 time_picker.setOnTimeChangedListener(new OnTimeChangedListener() { public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { //改变标题的日期 tv_time.setText("现在时间:"+hourOfDay+":"+minute); } });

    2:java中Calendar类的使用:

    //1.获取日历的一个对象 private cal=Calendar.getInstance(); //2.通过该日历对象获取日历的年月份时分秒信息 private year=cal.get(Calendar.YEAR); private month=cal.get(Calendar.MONTH)+1; //Ps: 特殊的是Calendar中月份从0开始计数,所以加1得到常规月份

    3:TimePickerDailog的用法

    new TimePickerDialog(context,callBack,hourOfDay,minute,is24HourView()).show(); //其中的属性参数 hourOfDay,minute 需要自己定义 //也就是说 TimePickerDialog 不会自行初始化时间,参数 is24HourView 为Boolean类型 //3.sdk方法中的时间参数只有month,day会是这种形式monthOfYear,dayOfMonth,因为月数,日数依赖于后者

    4:注意事项

    1.DatePicker对象以init()这个方法来指定DatePicker初始的年、月、日及OnDateChangdeListener()的事件; 而TimePicker对象则是直接以setOnTimeChangedListener()事件来处理时间改变时程序要做的操作。

    2.DatePickerDialog和TimePickerDialog和前面的两种对象最大的区别在于 DatePicker和TimePicker是直接是印在屏幕上的, 而DatePickerDialog和TimePickerDialog是以弹出Dialog的方式来显示的。

    3.TimePickerDialog和TimePicker不同的是,它不用在布局文件中声明,直接通过类就可以new出来


    //下面是源代码

    package com.example.datatime; import java.util.Calendar; import android.os.Bundle; import android.app.Activity; import android.app.DatePickerDialog; import android.app.DatePickerDialog.OnDateSetListener; import android.app.TimePickerDialog; import android.app.TimePickerDialog.OnTimeSetListener; import android.view.Menu; import android.widget.DatePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener; public class MainActivity extends Activity { private TimePicker timePicker; private DatePicker datePicker; private Calendar cal; private int year; private int month; private int day; private int hour; private int minute; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取日历的对象 cal = Calendar.getInstance(); // 获取年月日 时分的信息 year = cal.get(Calendar.YEAR); /* PS:因为month月份是从0开始计数的 所以+1 */ month = cal.get(Calendar.MONTH) + 1; day = cal.get(Calendar.DAY_OF_MONTH); hour = cal.get(Calendar.HOUR_OF_DAY); minute = cal.get(Calendar.MINUTE); // setTitle:设置标题、使标题上的日期能随着选择的改变而改变 setTitle(year + "-" + month + "-" + day + "-" + hour + ":" + minute); // 初始化两个组件 timePicker = (TimePicker) findViewById(R.id.timePicker); datePicker = (DatePicker) findViewById(R.id.datePicker); // datePicker1初始化的操作 datePicker.init(year, (Calendar.MONTH) + 1, day, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth); } }); // timePicker1初始化的操作 timePicker.setOnTimeChangedListener(new OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub setTitle(hourOfDay + ":" + minute); } }); // 用对话框来修改日期 new DatePickerDialog(this, new OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth); } }, year, cal.get(Calendar.MONTH), day).show(); // 用对话框来修改日期 new TimePickerDialog(this, new OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub setTitle(hourOfDay + ":" + minute); } }, hour, minute, false).show();// true是24小时制,false反之 } }
    转载请注明原文地址: https://ju.6miu.com/read-1304144.html
    最新回复(0)