android之TimePicker

TimePicker:時間選擇器。這個和DatePicker的設置基本差不多,下面就不多說了,基本註釋都在代碼中。

效果:

程序開始畫面

點擊按鈕後就會顯示時間選擇器對話框

 

在對話框上面設置時間:

 

當用戶設置好時間後,將時間顯示到TextView上面:

 

 

layout中的xml文件:

 

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.         android:layout_width="fill_parent" 
  3.         android:layout_height="fill_parent" 
  4.         android:orientation="vertical"> 
  5.  
  6.     <TextView   
  7.         android:id="@+id/textview" 
  8.         android:layout_width="fill_parent" 
  9.         android:layout_height="wrap_content" 
  10.         android:text="設置的時間:" 
  11.         /> 
  12.     <Button 
  13.         android:id="@+id/timepickerBut"   
  14.         android:layout_width="wrap_content" 
  15.         android:layout_height="wrap_content" 
  16.         android:text="改變時間" 
  17.         /> 
  18.  
  19. </LinearLayout> 

Activaty.java文件:

 

  1. package com.cheng.timepickerproject;  
  2.  
  3. import java.util.Calendar;  
  4. import android.os.Bundle;  
  5. import android.app.Activity;  
  6. import android.app.Dialog;  
  7. import android.app.TimePickerDialog;  
  8. import android.app.TimePickerDialog.OnTimeSetListener;  
  9. import android.view.Menu;  
  10. import android.view.View;  
  11. import android.widget.Button;  
  12. import android.widget.TextView;  
  13. import android.widget.TimePicker;  
  14.  
  15. public class TimePickerActivity extends Activity {  
  16.     private Button mButton;    //定義按鈕  
  17.     private TextView mTextView;//定義文本框  
  18.       
  19.     private int mHour;       //存放時間的小時  
  20.     private int mMinute;     //存放時間的分鐘  
  21.       
  22.     private static final int TIMEPICKER_DIALOG_1 = 0;   //設置Dialog的id  
  23.       
  24.       
  25.     //時間監聽器,當用戶改變時間的時候將會調用它  
  26.     OnTimeSetListener otsl = new OnTimeSetListener() {  
  27.           
  28.         @Override 
  29.         public void onTimeSet(TimePicker view, int hourOfDay, int minute) {  
  30.             // TODO Auto-generated method stub  
  31.             //設置小時、分鐘,並把時間顯示在文本框上  
  32.             mHour = hourOfDay;  
  33.             mMinute = minute;  
  34.             mTextView.setText("當前時間:" + mHour +":"+mMinute);  
  35.         }  
  36.     };  
  37.       
  38.       
  39.     //從寫onCreateDialog,創建一個對話框  
  40.     protected Dialog onCreateDialog(int id) {  
  41.         switch (id) {  
  42.         case TIMEPICKER_DIALOG_1:  
  43.             //新建一個TimePickerDialog  
  44.             return new TimePickerDialog(TimePickerActivity.this, otsl, mHour, mMinute, true);  
  45.  
  46.         default:  
  47.             break;  
  48.         }  
  49.         return null;  
  50.           
  51.     }  
  52.     @Override 
  53.     protected void onCreate(Bundle savedInstanceState) {  
  54.         super.onCreate(savedInstanceState);  
  55.         super.setContentView(R.layout.main);  
  56.           
  57.         //給按鈕和文本框賦值  
  58.         mButton = (Button)findViewById(R.id.timepickerBut);  
  59.         mTextView = (TextView)findViewById(R.id.textview);  
  60.           
  61.         //點擊監聽器  
  62.         View.OnClickListener ocl = new View.OnClickListener() {  
  63.               
  64.             @Override 
  65.             public void onClick(View v) {  
  66.                 // TODO Auto-generated method stub  
  67.                 //獲得當前的時間的小時和分鐘  
  68.                 Calendar calendar = Calendar.getInstance();  
  69.                 mHour = calendar.get(Calendar.HOUR);  
  70.                 mMinute = calendar.get(Calendar.MINUTE);  
  71.                 //顯示對話框  
  72.                 showDialog(TIMEPICKER_DIALOG_1);  
  73.             }  
  74.         };  
  75.         //將點擊時間綁定到按鈕上面  
  76.         mButton.setOnClickListener(ocl);  
  77.     }  
  78.  
  79.     @Override 
  80.     public boolean onCreateOptionsMenu(Menu menu) {  
  81.         // Inflate the menu; this adds items to the action bar if it is present.  
  82.         getMenuInflater().inflate(R.menu.main, menu);  
  83.         return true;  
  84.     }  
  85.  
  86. }  

ok,加上下載工程鏈接:

http://down.51cto.com/data/674184

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章