Android学习笔记(二):选取器视图的使用

1. TimePicker视图

     TimePicker视图显示了一个让用户设置时间的标准用户界面,默认情况下是以AM/PM的形式显示时间(如果要用24小时的格式来显示则需要使用函数setIs24HourView(true))。如果要获取用户设置的时间,可以使用函数getCurrentHour()getCurrentMinute()来返回时间(注意不管怎么设置,getCurrentHour返回的是24小时格式的时间)。

1)直接显示在界面的:

       在xml文件中加入一个部件<TimePicker/>,就可以使用了。

2)以对话框方式显示出来的:

       为了显示一个对话框,需要使用showDialog(),并传入一个ID来表示对话框的源;然后在调用showDialog方法时,onCreateDialog()方法被调用,所以也需写onCreateDialog方法。如下:

     

      @Override
      protected Dialog onCreateDialog(int id){
           switch(id){
                case TIME_DIALOG_ID:
                     return new TimePickerDialog(
                            this,mTimeSetListener,hour,minute,false);
                 //该部分是下面date选取器的内容
                case DATE_DIALOG_ID:
                     return new DatePickerDialog(
                            this,mDateSetListener,y,m,d);
            }
            return null;
     }

        在这里创建了一个TimePickerDialog的 新实例,给它传递了当前的上下文,回调函数,初始小时和分钟,以及是否以24小时格式显示。当用户点击弹出来的TimePicker的set键时会触发onTimeSet()方法。

    

      private TimePickerDialog.OnTimeSetListener mTimeSetListener = 
              new TimePickerDialog.OnTimeSetListener()
      {
              public void onTimeSet(TimePicker view,int hourOfDay,int minuteOfHour){
                         //设置时间
                         hour = hourOfDay;
                         minute = minuteOfHour;
                        //设置时间的格式
                        SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm aa");
                        Date date = new Date(0,0,0,hour,minute);
                        String strDate = timeFormat.format(date);

                        Toast.makeText(getBaseContext(),
                                "Time selected:"+strDate, Toast.LENGTH_SHORT).show();
               }
       };


2.DatePicker视图

类似TimePicker,它可以选择一个特定的日期。通过调用getMonth(),getDayOfMonth()和getYear()方法来分别获取月份,日子和年份(注意:getMonth返回0代表一月,所以需将返回结果加1来获得对应的月份)

1)直接显示在界面的:

       在xml文件中加入一个部件<DatePicker/>,就可以使用了。

2)以对话框方式显示出来的:

       与上面的类似,也是通过showDialog(),onCreateDialog(),onDateSet()方式来显示。

     

      private DatePickerDialog.OnDateSetListener mDateSetListener = 
              new DatePickerDialog.OnDateSetListener()
      {
              public void onDateSet(DatePicker view,int year,int monthOfYear,int dayOfMonth)
              {
                      y = year;
                      m = monthOfYear;
                      d = dayOfMonth;
                      Toast.makeText(getBaseContext(), 
                           "Date selected:"+(monthOfYear+1)
                            +"/"+dayOfMonth+"/"+year, Toast.LENGTH_SHORT).show();
              }
       };

        注意;在显示对话框之前需要初始化3个变量----y,m,d----- 。如果不这样做时,当运行时创建一个实例时将发生非法参数异常(current should be >=start and <=end)。

     结论:个人觉得在多种应用中都使用了这两种视图,有必要好好的掌握它们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值