• android笔记:DatePickerDialog日期设置对话框


    在开发中,可以通过DatePickerDialog来设置日期,TimePickerDialog来设置时间。

    实例化DatePickerDialog对象之后,再调用show方法就可以显示对话框了。

    具体的api如下所示:

    public DatePickerDialog(Context context,

                            DatePickerDialog.OnDateSetListener callBack,
                            int year,
                            int monthOfYear,
                            int dayOfMonth)
    参数:
    context - The context the dialog is to run in.(上下文)
    - How the parent is notified that the date is set.(日期设置的监听器)
    year - The initial year of the dialog.(初始的年份)
    monthOfYear - The initial month of the dialog.(初始的月份)
    dayOfMonth - The initial day of the dialog.(初始的日期)
    注意:如果使用Calendar类的Calendar.MONTH来初始化月份monthOfYear,在获取月份时记得加1.
    因为Calendar.MONTH的月份是从0开始的,0表示1月份,1表示2月份。

    具体的代码如下所示:

    MainActivity.java
    package com.example.datepickerdialogdemo;
    
    import java.util.Calendar;
    import java.util.Date;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.app.DatePickerDialog;
    import android.app.TimePickerDialog;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.TimePicker;
    
    public class MainActivity extends Activity {
         Button datePicker;
         Button timePicker;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            datePicker=(Button)findViewById(R.id.date_picker);
            timePicker=(Button)findViewById(R.id.time_picker);
            datePicker.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Calendar calendar=Calendar.getInstance();
                    DatePickerDialog dpd=new DatePickerDialog(MainActivity.this,  new DatePickerDialog.OnDateSetListener() {  
                          
                        @Override  
    //监听日期的变化.
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    //由于使用Calendar.MONTH初始化月份,而Calendar.MONTH是从0开始的,因此在获取月份时,记得加1. EditText date
    = (EditText) findViewById(R.id.date_text); date.setText( year + "-" + (monthOfYear+1) + "-" + dayOfMonth); } } , calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); dpd.show(); } }); timePicker.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub
    //时间设置的对话框和日期设置的对话框的构造方法非常类似。以下直接new对象调用show方法.省去不必要的对象命名
    Calendar calendar=Calendar.getInstance(); new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker picker, int hourOfDay, int minute) { // TODO Auto-generated method stub EditText time = (EditText) findViewById(R.id.time_text); time.setText(hourOfDay+":"+minute); } }, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
    
    
    
    activity_main.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" 
        android:orientation="vertical">
    
    
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >
            <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/DatePicker"
                android:id="@+id/date_picker"/>
            
            <EditText 
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:hint="select date"
                android:id="@+id/date_text"
                />
         </LinearLayout>
         
        <LinearLayout  
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"  >  
             <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/TimePicker"
                android:id="@+id/time_picker"  />
              <EditText 
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:hint="select time"
                android:id="@+id/time_text"
                />
         </LinearLayout>    
    </LinearLayout>
    
    

    strings.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">DatePickerDialogDemo</string>
        <string name="action_settings">Settings</string>
        <string name="hello_world">Hello world!</string>
        <string name="DatePicker">日期</string>
        <string name="TimePicker">时间</string>
    </resources>

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.datepickerdialogdemo"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.example.datepickerdialogdemo.MainActivity"
                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>
    运行效果如下所示:










  • 相关阅读:
    AOP面向切面编程
    java中与运算,或运算,异或运算,取反运算
    Java中replace和replaceall的区别
    Satisfying memory ordering requirements between partial reads and non-snoop accesses
    JS判断字符串中是否存在某个字符
    PHP 简介
    PHP 是什么
    mysql substr() 函数
    MySQL 数学函数
    MySQL 字符串截取SUBSTRING()函数
  • 原文地址:https://www.cnblogs.com/expiator/p/5969165.html
Copyright © 2020-2023  润新知