DatePickerの利用 (DatePickコントロールの利用) - Android

DatePickerを利用します。

実装例

プロジェクトの設定

Androidプロジェクトを新規作成します。
  • Project name: SimpleDatePicker
  • Build Target: Android 2.1-update1
  • Application name: SimpleDatePicker
  • Package name: iPentec.SimpleDatePicker
  • Activity: SimpleDatePicker

UI

プロジェクト作成後main.xmlを編集します。


DatePickerを画面に配置します。


この状態で実行してみます。エミュレーターが起動し下図の画面が表示されます。


Eclipseに戻ります。DatePickerの下部にTextViewコントロールを配置します。


TextViewコントロールを選択し、右クリックしポップアップメニューを表示させ[Properties]メニューの[textSize]メニューを選択します。下図のダイアログボックスが表示されますので、テキストボックスに「24sp」を入力します。入力ができたら[OK]ボタンをクリックします。


main.xmlのソースコードを確認します。android:textSize="24sp" となっていることがわかります。


main.xmlのデザイン画面に切り替えるとTextViewの文字サイズが大きくなっていることも確認できます。


DatePickerとTextViewの間にボタンを配置します。ボタンのOnClickプロパティに"onClick_Button1"を設定します。


コード

コードを記述します。
SimpleDatePicker.java
package iPentec.SimpleDatePicker;

import android.app.Activity;
import android.os.Bundle;
import android.view.*;
import android.widget.*;

public class SimpleDatePicker extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    public void onClick_Button1(View view){
       	DatePicker datePicker1 = (DatePicker)findViewById(R.id.datePicker1);
        int year = datePicker1.getYear();
        int month = datePicker1.getMonth();
        int day = datePicker1.getDayOfMonth();
        
        TextView textView1 = (TextView)findViewById(R.id.textView1);
        textView1.setText(String.format("%d-%d-%d", year,month,day));   	
    }
}

実行結果

アプリケーションを起動します。エミュレーターが起動し下図の画面が表示されます。


真ん中のスピンボックスの[-]ボタンをクリックして数値を減らしてみます。


ボタンをクリックします。ボタンをクリックするとTextViewにDatePickerで設定されている日時が画面に表示されます。が月の値がDatePickerで設定されている値より1少ないです。



上記の現象に対応するため、表示の際に月には1加算する処理を追加しました。コードは下記のとおりです。
SimpleDatePicker.java - onClick_Button1メソッド
public void onClick_Button1(View view){
    DatePicker datePicker1 = (DatePicker)findViewById(R.id.datePicker1);
    int year = datePicker1.getYear();
    int month = datePicker1.getMonth();
    int day = datePicker1.getDayOfMonth();
        
    TextView textView1 = (TextView)findViewById(R.id.textView1);
    textView1.setText(String.format("%d-%d-%d", year,month+1,day)); //←変更   	
}

実行します。ボタンを押すとDatePickerで選択した日付がTextViewに表示されます。



著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-04
作成日: 2011-02-23
iPentec all rights reserverd.