さまざまなGUI部品を使ってみよう! (6/7)
作成:2010-06-17 17:01
更新:2010-06-17 17:03
更新:2010-06-17 17:03
■DatePickerDialogによる日付ダイアログ
日付の入力というのは、独特です。正しくフォーマットされた形で入力されないといけないからです。普通の入力フィールドだと、正しい値かどうかチェックするなど考えなければいけません。
そこでAndroidでは、日付を入力するための専用ダイアログというのを用意しています。これを利用することで、簡単に日付を入力することができます。下に簡単なサンプルをあげておきましょう。アプリケーションを起動すると、画面に日付ダイアログが現れます。ここで適当に日付を選び、「Set」ボタンを押すと、「日付:〇〇年○○月○○日」という具合に日付が表示されます。(※ここでは、android:id="@+id/text"という形でTextViewが用意されているものとして作ってあります)
※DatePickerDialogの作成
日付ダイアログは、「DatePickerDialog」というクラスとして用意されています。これは、以下のような形でインスタンスを作成します。
こうしてインスタンスを作成し、「show」というメソッドを呼び出せば、画面にダイアログがあらわれるというわけです。後は、日付を設定してセットすると、第2引数で指定しておいたイベントリスナーが呼び出されるので、ここで日付の処理をすればいいわけです。
※DatePickerDialog.OnDateSetListenerの作成
では、イベント処理をするDatePickerDialog.OnDateSetListenerは、どのようにして作成するのでしょうか。これはだいたい以下のようになります。
ここでは無名クラスとしてインスタンスを作り、メソッドを設定していますが、もちろん他にimplementsしたクラスを用意してもかまいません。そのへんはそれぞれの書きやすいやり方でOKです。
そこでAndroidでは、日付を入力するための専用ダイアログというのを用意しています。これを利用することで、簡単に日付を入力することができます。下に簡単なサンプルをあげておきましょう。アプリケーションを起動すると、画面に日付ダイアログが現れます。ここで適当に日付を選び、「Set」ボタンを押すと、「日付:〇〇年○○月○○日」という具合に日付が表示されます。(※ここでは、android:id="@+id/text"という形でTextViewが用意されているものとして作ってあります)
※DatePickerDialogの作成
日付ダイアログは、「DatePickerDialog」というクラスとして用意されています。これは、以下のような形でインスタンスを作成します。
new DatePickerDialog( [Context], [DatePickerDialog.OnDateSetListener],第1引数は、このダイアログが表示される親となるものを指定します。これは通常、thisを指定すればいいでしょう。第2引数には、日付を設定した時のイベント処理をするためのイベントリスナーを指定します。そして第3~5引数は、デフォルト時の年月日の値を指定します。注意したいのは「月」の値で、これは0~11の整数値となります(つまり、1月はゼロ)。
年の値, 月の値, 日の値 )
こうしてインスタンスを作成し、「show」というメソッドを呼び出せば、画面にダイアログがあらわれるというわけです。後は、日付を設定してセットすると、第2引数で指定しておいたイベントリスナーが呼び出されるので、ここで日付の処理をすればいいわけです。
※DatePickerDialog.OnDateSetListenerの作成
では、イベント処理をするDatePickerDialog.OnDateSetListenerは、どのようにして作成するのでしょうか。これはだいたい以下のようになります。
new DatePickerDialog.OnDateSetListener(){DatePickerDialog.OnDateSetListenerは、「onDateSet」というメソッドを1つ持っています。ここで、日付設定時の処理を行います。このメソッドでは、引数にイベントが発生したDatePickerインスタンス、設定された年月日の値がそれぞれ引渡されます。
@Override
public void onDateSet(DatePicker view, int y, int m, int d) {
……設定時の処理……
}
};
ここでは無名クラスとしてインスタンスを作り、メソッドを設定していますが、もちろん他にimplementsしたクラスを用意してもかまいません。そのへんはそれぞれの書きやすいやり方でOKです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package jp.tuyano; import android.app.*; import android.os.Bundle; import android.widget.*; public class SampleApp extends Activity { private TextView text1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text1 = (TextView)this.findViewById(R.id.text); DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener(){ @Override public void onDateSet(DatePicker view, int y, int m, int d) { text1.setText("日付:" + y + "年" + (m + 1) + "月" + d + "日"); } }; DatePickerDialog datePicker = new DatePickerDialog(this,listener,2010,0,1); datePicker.show(); } }
※関連コンテンツ