Android-datepicker-control
Android-日付ピッカー
'_Androidの日付ピッカーを使用すると、カスタムユーザーインターフェイスで日、月、年で構成される日付を選択できます。 この機能のために、AndroidはDatePickerおよびDatePickerDialogコンポーネントを提供します。_
このチュートリアルでは、DatePickerDialogを使用して日付ピッカーを使用する方法を示します。 DatePickerDialogは、DatePickerを含むシンプルなダイアログです。
DatePickerDialogを表示するには、DatePickerDialog idを_showDialog(id_of_dialog)_メソッドに渡す必要があります。 その構文は以下のとおりです-
showDialog(999);
この_showDialog_メソッドを呼び出すと、_onCreateDialog_という別のメソッドが自動的に呼び出されます。 そのため、このメソッドもオーバーライドする必要があります。 その構文は以下のとおりです-
@Override
protected Dialog onCreateDialog(int id) {
//TODO Auto-generated method stub
if (id == 999) {
return new DatePickerDialog(this, myDateListener, year, month, day);
}
return null;
}
最後の手順では、DatePickerDialogリスナーを登録し、そのonDateSetメソッドをオーバーライドする必要があります。 このonDateSetメソッドには、更新された日、月、年が含まれます。 その構文は以下のとおりです-
private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
//arg1 = year
//arg2 = month
//arg3 = day
}
};
日付属性とは別に、DatePickerオブジェクトもこの関数に渡されます。 DatePickerの以下のメソッドを使用して、さらに操作を実行できます。
Sr.No | Method & description |
---|---|
1 |
getDayOfMonth() このメソッドは、選択した月の日を取得します |
2 |
getMonth() このメソッドは、選択された月を取得します |
3 |
getYear() このメソッドは、選択された年を取得します |
4 |
setMaxDate(long maxDate) このメソッドは、このDatePickerがサポートする最大日付を1970年1月1日00:00:00からgetDefault()タイムゾーンでミリ秒単位で設定します |
5 |
setMinDate(long minDate) このメソッドは、このNumberPickerがサポートする最小日付を1970年1月1日00:00:00からgetDefault()タイムゾーンでミリ秒単位で設定します |
6 |
setSpinnersShown(boolean shown) このメソッドは、スピナーを表示するかどうかを設定します |
7 |
updateDate(int year, int month, int dayOfMonth) このメソッドは現在の日付を更新します |
8 |
getCalendarView() このメソッドはカレンダービューを返します |
9 |
getFirstDayOfWeek() このメソッドは、週の最初の曜日を返します |
例
DatePickerDialogクラスの使用方法を示す例を次に示します。 DatePickerウィジェットを使用して日付を設定できる基本的な日付ピッカーアプリケーションを作成します
この例を試すには、実際のデバイスまたはエミュレーターでこれを実行できます。
Steps | Description |
---|---|
1 | You will use Android studio to create an Android application and name it as DatePicker under a package com.example.datepicker. |
2 | Modify src/MainActivity.java file to add necessary code. |
3 | Modify the res/layout/activity_main to add respective XML components. |
4 | Modify the res/values/string.xml to add necessary string components. |
5 | Run the application and choose a running android device and install the application on it and verify the results. |
以下は、変更されたメインアクティビティファイル src/com.example.datepicker/MainActivity.java の内容です。
package com.example.datepicker;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private DatePicker datePicker;
private Calendar calendar;
private TextView dateView;
private int year, month, day;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dateView = (TextView) findViewById(R.id.textView3);
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
showDate(year, month+1, day);
}
@SuppressWarnings("deprecation")
public void setDate(View view) {
showDialog(999);
Toast.makeText(getApplicationContext(), "ca",
Toast.LENGTH_SHORT)
.show();
}
@Override
protected Dialog onCreateDialog(int id) {
//TODO Auto-generated method stub
if (id == 999) {
return new DatePickerDialog(this,
myDateListener, year, month, day);
}
return null;
}
private DatePickerDialog.OnDateSetListener myDateListener = new
DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0,
int arg1, int arg2, int arg3) {
//TODO Auto-generated method stub
//arg1 = year
//arg2 = month
//arg3 = day
showDate(arg1, arg2+1, arg3);
}
};
private void showDate(int year, int month, int day) {
dateView.setText(new StringBuilder().append(day).append("/")
.append(month).append("/").append(year));
}
}
以下は、xml res/layout/activity_main.xml の変更されたコンテンツです。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:onClick="setDate"
android:text="@string/date_button_set"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="24dp"
android:text="@string/date_label_set"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginTop="66dp"
android:layout_toLeftOf="@+id/button1"
android:text="@string/date_view_set"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button1"
android:layout_below="@+id/textView2"
android:layout_marginTop="72dp"
android:text="@string/date_selected"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</RelativeLayout>
以下は res/values/string.xml の内容です。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">DatePicker</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="date_label_set">Press the button to set the date</string>
<string name="date_button_set">Set Date</string>
<string name="date_view_set">The Date is: </string>
<string name="date_selected"></string>
</resources>
変更したDatePickerアプリケーションを実行してみましょう。 環境のセットアップ中に AVD を作成したと思います。 Eclipseからアプリを実行するには、プロジェクトのアクティビティファイルの1つを開き、ツールバーのRun Eclipse Run Iconアイコンをクリックします。 EclipseがAVDにアプリをインストールして起動し、セットアップとアプリケーションで問題がなければ、次のエミュレータウィンドウが表示されます-
これで、日付がすでに下のラベルで設定されていることがわかります。 ここで、[日付の設定]ボタンを押して、DatePickerDialogで日付を変更します。 画面に続くボタンを押すと表示されます。
必要な日付を設定し、日付を設定した後、完了ボタンを押します。 このダイアログは消え、新しく設定された日付が画面に表示され始めます。 これを以下に示します。