DatePickerDialogで日付を取得
初期画面
ダイアログ画面
入力後の画面
機能
- EditTextをクリック → 日付選択のダイアログを表示 → 選択した日付をEditTextに表示
ポイント
- android:focusable="false"でキーボード非表示
- monthは0-11なので+1する
- 「2017/04/01」と表示するにはString.format()を使う
必要なファイル
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" tools:context="com.example.orisa.mydatepicker1.MainActivity"> <EditText android:id="@+id/showDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:focusable="false" android:inputType="date" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="66dp" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="select date" android:textAppearance="@android:style/TextAppearance.Material.Medium" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="61dp" /> </RelativeLayout>
MainActivity.java
package com.example.orisa.mydatepicker1; import android.app.DatePickerDialog; import android.icu.util.Calendar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { //部品の変数 EditText showDate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品の取得 showDate = (EditText) findViewById(R.id.showDate); //EditTextにリスナーをつける showDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Calendarインスタンスを取得 final Calendar date = Calendar.getInstance(); //DatePickerDialogインスタンスを取得 DatePickerDialog datePickerDialog = new DatePickerDialog( MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { //setした日付を取得して表示 showDate.setText(String.format("%d / %02d / %02d", year, month+1, dayOfMonth)); } }, date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DATE) ); //dialogを表示 datePickerDialog.show(); } }); } }