日付と時刻を動的に入力


1、日付、時刻ピックアップ
Androidは、ユーザーが日付と時刻を選択できるように、DatePickerコンポーネントとTimePickerコンポーネントの日付時刻ピックアップを提供しています.この2つのコンポーネントは比較的簡単で、Eclipseのビジュアル化インタフェースで、対応するコンポーネントを選択してレイアウトファイルにドラッグ&ドロップすることができます.ユーザーが選択した日時を再プログラムで取得できるようにするには、DatePickerTimePickerコンポーネントにイベントリスナーを追加する必要があります.ここで、DatePickerコンポーネントに対応するイベントリスナーはonDateChangedListenerであり、TimePickerコンポーネントに対応するタイムリスナーはOnTimeChangedListenerである.
1)再レイアウトファイルに、日時ピックアップを追加します.
    <DatePicker
        android:id="@+id/dataPicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <TimePicker 
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

2)メインアクティビティMainActivityのonCreat()メソッドで,コンポーネントを取得し,時間コンポーネントを24時間制に設定する.
	DatePicker datePicker = (DatePicker)findViewById(R.id.dataPicker);
	TimePicker timePicker = (TimePicker)findViewById(R.id.timePicker);
	timePicker.setIs24HourView(true);

3)カレンダ・オブジェクトを作成します.
	Calendar calendar = Calendar.getInstance();//      
	year = calendar.get(Calendar.YEAR);
	month = calendar.get(Calendar.MONTH);
	day = calendar.get(Calendar.DAY_OF_MONTH);
	hour = calendar.get(Calendar.HOUR_OF_DAY);
	minute = calendar.get(Calendar.MINUTE);
	second = calendar.get(Calendar.SECOND);
)日付ピッカーコンポーネントを初期化し、時間リスナーを設定します.
	//           
	datePicker.init(year, month, day, new OnDateChangedListener(){

		@Override
		public void onDateChanged(DatePicker arg0, int year, int month,
				int day) {
			MainActivity.this.year = year;
			MainActivity.this.month = month;
			MainActivity.this.day = day;
			show(year,month,day,hour,minute,second);
		}
		
	});

	//           
	timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){

		@Override
		public void onTimeChanged(TimePicker view, int hour, int minute) {
			// TODO Auto-generated method stub
			MainActivity.this.hour = hour;
			MainActivity.this.minute = minute;
			show(year,month,day,hour,minute,second);
		}
	});

5)show()の作成方法:
	private void show(int year,int month,int day,int hour,int minute,int second){
		String str = year+" "+(month+1)+" "+day+" "+hour+" "+minute+" "+second+" ";
		Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
	}

この例のポイントは、DatePickerとTimePickerオブジェクトを使用して日付と時間を動的に調整する機能を達成する方法を学習することであり、目の先の読者は、例ではDatePickerがOnDateChangedListener()を実現する方法とTimePickerがOnTimeChangedListener()を実現する方法が異なることを発見すべきである.DatePickerオブジェクトはinit()という方法でDatePickerの初期の年、月、日およびOnDateChangedListener()のイベントを指定します.TimePickerオブジェクトは、setOnTimeChangedListener()イベントで時間変更時にプログラムが行う操作を直接処理します.旧版のAndroid SDK(1.0 r 2版以前のSDKバージョン)では、DatePickerオブジェクトにsetOnDateChangedListener()を提供する方法があるが、新版のSDK(1.0 r 2)では、この方法は削除されているため、OnDateChangedListener()を実現するには、init()方式でOnDateChangedListener()を書き換える必要がある.TimePickerはsetOnTimeChangedListener()で直接実現すればよい.
2、動的修正日時
Android APIでは、DatePickerDialogとTimePickerDialogの他のオブジェクトを動的に変更する機能も提供されています.この2つのタイプのオブジェクトの最大の違いは、DatePickerとTimePickerが画面に直接表示され、DatePickerDialogとTimePickerDialogオブジェクトがDialogから飛び出して表示されることです.
DatePickerDialogとTimePickerDialogの実現方式はなぜですか?以下に簡単な例を示します.
/*        Button,  onClickListener */
	Button dButton=(Button)findViewById(R.id.dPicker);
	dButton.setOnClickListener(new View.OnClickListener(){
		  public void onClick(View v){
			    /* onClick   DatePickerDialog */
			    new DatePickerDialog(EX04_15_1.this,new DatePickerDialog.OnDateSetListener(){    
			          public void onDateSet(DatePicker view,int year,
			        		  int monthOfYear,int dayOfMonth){
			            /*            */ 
			          }
			   },mYear,mMonth,mDay).show();
		  }
	});
	/*        Button,  onClickListener */
	Button tButton=(Button)findViewById(R.id.tPicker);
	tButton.setOnClickListener(new View.OnClickListener(){
		  public void onClick(View v){
		    /* onClick   TimePickerDialog */
			  new TimePickerDialog(EX04_15_1.this,new TimePickerDialog.OnTimeSetListener(){    
		          	public void onTimeSet(TimePicker view,int hourOfDay,int minute){
		            /*            */ 
		          	}          
			  },mHour,mMinute,true).show();
		  }
	});
       DatePicker、TimePicker, DatePickerDialog、TimePickerDialog,                ,          ,            !
    CSDN  ,       :http://blog.csdn.net/lewutian/archive/2009/08/20/4467662.aspx