Android对话框(三)

本文采用一个简单的例子解释DatePickerDialog、和TimePickerDialog的使用方法。

.XML文件内容如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
   
   <Button
     android:id="@+id/button"
     android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_title"
     
   
    />
    <Button
     android:id="@+id/button1"
     android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_title1"
         
    />

    <TextView
     android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        />


</LinearLayout>

.XML布局结果如下图显示。

 

 

.java文件如下

 

package com.example.datepickerdialog;

 

import java.util.Calendar;

 

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

 

public class MainActivity extends Activity {

 

 final int DIALOG_DATEPICKER=1;
 final int DIALOG_TIMEPICKER=2;
 Calendar c;
 Button btn;
 Button btn1;
 String str_information="";
 String str_information1="";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /*获取当前日期*、
         *
         */
       
        c=Calendar.getInstance();
        btn=(Button)findViewById(R.id.button);
        OnClickListener lsn=new OnClickListener(){
         
         public void onClick(View v){
          
          /*
           * 当Button被单击后,改变Button上面的背景文字
           * 并且打开DatePickerDialog对话框
           */
                
          showDialog(DIALOG_DATEPICKER);
         }
         
         
         
        };
       
        btn.setOnClickListener(lsn);
       
        btn1=(Button)findViewById(R.id.button1);
        OnClickListener lsn1=new OnClickListener(){
         
         public void onClick(View v){
          
          /*
           * 当Button被单击后,改变Button上面的背景文字
           * 并且打开DatePickerDialog对话框
           */
                
          showDialog(DIALOG_TIMEPICKER);
         }
         
         
         
        };
       
        btn1.setOnClickListener(lsn1);
       
    }
   

 


   protected Dialog onCreateDialog(int id){
    switch(id){
    case DIALOG_DATEPICKER:
    
     OnDateSetListener lsn=new OnDateSetListener(){
     
      public void onDateSet(DatePicker v,int y,int m,int d){
      
    /*
     * 设置好日期后的回调方法,
     * 可以根据设置的内容更新用户界面,
     * 或者系统时间
     */
    
       TextView tv=(TextView)findViewById(R.id.textview);
        str_information="\n您设置的日期为\n";
        str_information=str_information+y+"年/"+m+"月/"+d+"日";
        //tv.setText(str_information);
        tv.append(str_information);
     
      
      }
     
     
     };
    
     DatePickerDialog date_dialog=new DatePickerDialog(this,lsn,c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH));
  
    
    return date_dialog;
   
    case DIALOG_TIMEPICKER:
     OnTimeSetListener lsn1=new OnTimeSetListener(){
     
      public void onTimeSet (TimePicker view, int hourOfDay, int minute) {
      
       TextView tv=(TextView)findViewById(R.id.textview);
       str_information1="\n您设置的时间为:\n";
      
        str_information1=str_information1+hourOfDay+"时"+minute+"分\n";
        tv.append(str_information1);
     
      
      
      }

 

     
     };

 

        TimePickerDialog time_dialog=new TimePickerDialog(this,lsn1,c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),true); 
    
  return time_dialog;
   
    default:
     return null;
   
    }
   
   
   
   }
  

 


  
}

 

结果如图所示:

   

按下Set按钮后结果如下图所示:

按下Set按钮后结果如下图所示:

 

posted @ 2012-08-11 19:17  挡不住会飞的鸡  阅读(566)  评论(0编辑  收藏  举报