【时间修改】DatePicker和TimePicker 的使用--2016/8/15

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


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反之
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值