• Android碧水剑之DatePickerDialog、TimePickerDialog之岁月如梭


    传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229


    碧水剑
            岳灵珊转头向山谷瞧了一眼,叫道:“这把剑,这把剑!”令狐冲又是一惊,知道小师妹的长剑是一口断金削铁的利器,叫做“碧水剑”,三年前师父在浙江龙泉得来,小师妹一见之下爱不释手,向师父连求数次,师父始终不给,直至今年她十八岁生日,师父才给了她当生日礼物,这一下堕入了深谷,再也难以取回,今次当真是铸成大错了。

            今天我们学习如何利用Android平台“碧水剑”DatePickerDialog、TimePickerDialog来显示日期时间对话框,下面给出该情景的案例:

    一、案例技术要点

    1.时间选择对话框构造方法:new TimePickerDialog(...)。
    第二个参数表示引入时间设置监听器对象MyTimeSetListener
    最后一个参数标示是否按24小时制显示
    2.日期选择对话框构造方法:new DatePickerDialog(...)。
    第二个参数表示引入日期设置监听器对象MyDateSetListener
    3.为TimePickerDialog新增自定义的时间设置监听MyTimeSetListener,并且实现OnTimeSetListener接口的onTimeSet(...)方法。
    4.为DatePickerDialog新增自定义的日期设置监听MyDateSetListener,并且实现OnDateSetListener接口的onDateSet(...)方法。

    二、案例代码陈列

    AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.android.clock"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="15" />
    
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:name=".DateTimePickerDialogMainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    strings.xml
    <resources>
        <string name="app_name">DateTimePickerDialog显示日期时间对话框</string>
    </resources>
    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <AnalogClock
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        
        <DigitalClock 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"/>
        
        <Button 
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="显示TimePickDialog" />
        
        <Button 
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="显示DatePickDialog" />
    </LinearLayout>
    DateTimePickerDialogMainActivity.java
    package com.android.clock;
    
    import java.util.Calendar;
    
    import android.app.Activity;
    import android.app.DatePickerDialog;
    import android.app.DatePickerDialog.OnDateSetListener;
    import android.app.TimePickerDialog;
    import android.app.TimePickerDialog.OnTimeSetListener;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.TimePicker;
    import android.widget.Toast;
    
    /**
     * DatePickerDialog、TimePickerDialog案例:日期时间显示对话框
     * @author lynnli1229
     */
    public class DateTimePickerDialogMainActivity extends Activity implements OnClickListener {
        private Button button1, button2;
        private int hourOfDay, minute, year, monthOfYear, dayOfMonth;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            button1 = (Button) findViewById(R.id.button1);
            button2 = (Button) findViewById(R.id.button2);
            button1.setOnClickListener(this);
            button2.setOnClickListener(this);
            //获取当前时间
            Calendar calendar = Calendar.getInstance();
            year = calendar.get(Calendar.YEAR);
            monthOfYear = calendar.get(Calendar.MONTH);
            dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
            hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
            minute = calendar.get(Calendar.MINUTE);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.button1:
                TimePickerDialog timePickerDialog = new TimePickerDialog(this, new MyTimeSetListener(), hourOfDay, minute, true);
                timePickerDialog.show();
                break;
    
            case R.id.button2:
                DatePickerDialog datePickerDialog = new DatePickerDialog(this, new MyDateSetListener(), year, monthOfYear, dayOfMonth);
                datePickerDialog.show();
                break;
            }
            
        }
    
        private class MyTimeSetListener implements OnTimeSetListener {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Toast.makeText(DateTimePickerDialogMainActivity.this, "hourOfDay: " + hourOfDay + ", minute: " + minute, Toast.LENGTH_LONG).show();
            }
        }
    
        private class MyDateSetListener implements OnDateSetListener {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                Toast.makeText(DateTimePickerDialogMainActivity.this, "year: " + year + ", monthOfYear: " + monthOfYear + ", dayOfMonth: " + dayOfMonth, Toast.LENGTH_LONG).show();
            }
            
        }
    }
    三、案例效果展示
        
  • 相关阅读:
    团队与领导力健康检查 | 体检表
    如何改变组织文化
    如何在各种文化背景下成功敏捷
    OKR痛点与误区 | 敏捷家分享007
    Scrum培训感想
    如何讲好故事
    Lc70_爬楼梯
    Lc641_设计循环双端队列
    Lc32_最长有效括号
    Lc239_滑动窗口最大值
  • 原文地址:https://www.cnblogs.com/innosight/p/3271232.html
Copyright © 2020-2023  润新知