• 时间对话框的使用


    时间对话框的使用

    一、简介

    二、方法

    1)显示TimePickerDialog方法

    1、新建TimePickerDialog对象

    TimePickerDialog timeDialog=new TimePickerDialog(this, new MyTimeSetListener(), 13, 30, true);

    各个参数的含义如下:

    说明一下:

    第一个参数context就是这个控件显示的父控件是什么,也就是这个控件显示在哪个控件里面

    第二个参数callback就是这个控件出现后,控件上面会有一个set或者done按钮,你点这个按钮之后调用的监听,

    所以在这里我写的是一个监听,new MyTimeSetListener(),这个监听的来源如下:

    public class MyTimeSetListener implements OnTimeSetListener{里面是重写父类onTimeSet方法}

    也就是实现的OnTimeSetListener的接口

    其实你也可以直接用OnTimeSetListener的对象,代码如下:

    public OnTimeSetListener timeSetListener=new OnTimeSetListener(){里面是重写父类onTimeSet方法}

    2、调用TimePickerDialog对象的show()方法

     timeDialog.show();

    这个show方法不写,屏幕是没有反应的

    2)显示DatePickerDialog方法

    方法和TimePickerDialog几乎一模一样,连方法说明都无比类似

    如果不懂,直接看代码实例

    三、代码实例

    效果图:

    点解TimePickerDialog后

    点击done后

    点击“显示DatePickerDialog”后

    点击Done后

    代码:

    fry.Activity01

     1 package fry;
     2 
     3 import com.example.Ex25ClockDemo.R;
     4 
     5 import android.app.Activity;
     6 import android.app.DatePickerDialog;
     7 import android.app.DatePickerDialog.OnDateSetListener;
     8 import android.app.TimePickerDialog;
     9 import android.app.TimePickerDialog.OnTimeSetListener;
    10 import android.os.Bundle;
    11 import android.text.method.DateTimeKeyListener;
    12 import android.view.View;
    13 import android.view.View.OnClickListener;
    14 import android.widget.Button;
    15 import android.widget.DatePicker;
    16 import android.widget.TimePicker;
    17 import android.widget.Toast;
    18 
    19 public class Activity01 extends Activity implements OnClickListener {
    20     private Button btn_showTime;
    21     private Button btn_showDate;
    22     private TimePickerDialog timeDialog;
    23     private DatePickerDialog dateDialog;
    24 
    25     @Override
    26     protected void onCreate(Bundle savedInstanceState) {
    27         // TODO Auto-generated method stub
    28         super.onCreate(savedInstanceState);
    29         setContentView(R.layout.activity01);
    30         btn_showTime = (Button) findViewById(R.id.btn_showTime);
    31         btn_showDate = (Button) findViewById(R.id.btn_showDate);
    32 
    33         btn_showTime.setOnClickListener(this);
    34         btn_showDate.setOnClickListener(this);
    35     }
    36 
    37     /*
    38      * 1)显示TimePickerDialog方法
    39      * 1、新建TimePickerDialog对象
    40      * 2、调用TimePickerDialog对象的show()方法
    41      * 
    42      * (non-Javadoc)
    43      * @see android.view.View.OnClickListener#onClick(android.view.View)
    44      */
    45     @Override
    46     public void onClick(View v) {
    47         // TODO Auto-generated method stub
    48         switch (v.getId()) {
    49         case R.id.btn_showTime:
    50             if(timeDialog==null)
    51             //第二个参数是点设置之后回调的函数
    52             timeDialog=new TimePickerDialog(this, new MyTimeSetListener(), 13, 30, true);
    53             timeDialog.show();
    54             break;
    55         case R.id.btn_showDate:
    56             if(dateDialog==null)
    57             dateDialog=new DatePickerDialog(this, new MyDateSetListener(), 2017, 9-1, 9);
    58             //这个show方法不写,屏幕是没有反应的
    59             dateDialog.show();
    60             break;
    61 
    62         default:
    63             break;
    64         }
    65     }
    66     //用内部类实现参数
    67     //设置时间的监听器
    68     public class MyTimeSetListener implements OnTimeSetListener{
    69 
    70         @Override
    71         public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    72             // TODO Auto-generated method stub
    73             Toast.makeText(Activity01.this, "hourOfDay:"+hourOfDay+" minute"+minute,Toast.LENGTH_SHORT).show();
    74         }
    75     };
    76     
    77     public class MyDateSetListener implements OnDateSetListener{
    78 
    79         @Override
    80         public void onDateSet(DatePicker view, int year, int monthOfYear,
    81                 int dayOfMonth) {
    82             // TODO Auto-generated method stub
    83             //这句话更像是为了测试什么时候调用了这个函数
    84             Toast.makeText(Activity01.this, "year:"+year+" monthOfYear"+(monthOfYear+1)+" dayOfMonth"+dayOfMonth,Toast.LENGTH_SHORT).show();
    85         }
    86         
    87     }
    88     
    89 }

    /Ex25ClockDemo/res/layout/activity01.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <AnalogClock 
     8         android:layout_width="wrap_content"
     9         android:layout_height="wrap_content"
    10         android:dial="@drawable/biaopan"
    11         />
    12     
    13     <DigitalClock 
    14         android:layout_width="wrap_content"
    15         android:layout_height="wrap_content"
    16         />
    17     
    18     <Button 
    19         android:id="@+id/btn_showTime"
    20         android:layout_width="wrap_content"
    21         android:layout_height="wrap_content"
    22         android:text="显示TimePickerDialog"
    23         />
    24     
    25     <Button 
    26         android:id="@+id/btn_showDate"
    27         android:layout_width="wrap_content"
    28         android:layout_height="wrap_content"
    29         android:text="显示DatePickerDialog"
    30         />
    31 
    32 </LinearLayout>

    四、注意点

    1、 AnalogClock中设置表盘属性,指针当然也可以自己设置

    <AnalogClock android:dial="@drawable/biaopan"/>

    时针设置:android:hand_hour
    分针设置:android:hand_minute

    2、TimePickerDialog的初始化方法需要特别注意一下,尤其是各个参数的说明

    timeDialog=new TimePickerDialog(this, new MyTimeSetListener(), 13, 30, true);

    3、一定不要忘记新建的TimePickerDialog对象一定要调用show()方法,要不根本显示不出来

    timeDialog.show();

    其实几乎所有这种显示在另外一个控件上的控件要想显示,都必须调用show()方法,例如:

    TimePickerDialog、DatePickerDialog、Toast

    4、如果想知道TimePickerDialog的初始化方法中的第二个参数new MyTimeSetListener()何时使用的时候,

    其实用log或Toast测试一下就好

    public class MyTimeSetListener implements OnTimeSetListener{

      public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        Toast.makeText(Activity01.this, "hourOfDay:"+hourOfDay+" minute"+minute,Toast.LENGTH_SHORT).show();
      }

    }

    五、易错点

    1、一定不要忘记新建的TimePickerDialog对象一定要调用show()方法,要不根本显示不出来

    timeDialog.show();

    这个很容易忘记,很容易错

    其实几乎所有这种显示在另外一个控件上的控件要想显示,都必须调用show()方法,例如:

    TimePickerDialog、DatePickerDialog、Toast

  • 相关阅读:
    面试汇总-待整理
    javaWeb2之Jsp
    Spring常用注解
    消费者、生产者模型
    网络知识之http请求
    设置Centos时间
    安装hive
    在Ubuntu上安装mysql(5.17.19)
    rabbitmq学习——主题路由
    rabbitmq学习——routingkey
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7331005.html
Copyright © 2020-2023  润新知