package lightbox.june.datepickercontrol;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.DatePicker;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
private Calendar calendar;
private int year;
private int monthOfYear;
private int dayOfMonth;
private DatePicker dp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dp = (DatePicker) MainActivity.this.findViewById(R.id.datePicker);
// ********************************
// 今日の日付
// ********************************
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
monthOfYear = calendar.get(Calendar.MONTH);
dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
// ******************************
// ボタン1
// Spinner
// ******************************
MainActivity.this.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ********************************
// Spinner DatePicker ダイアログの処理
// ********************************
DatePickerDialog spinnerDatePicker;
spinnerDatePicker = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Log.i("lightbox", String.format("%d-%d-%d",year,(monthOfYear+1),dayOfMonth ) );
}
}, year, monthOfYear, dayOfMonth);
// 表示前に日付を設定する時の日付の変更方法
spinnerDatePicker.getDatePicker().updateDate(year, monthOfYear, dayOfMonth);
spinnerDatePicker.show();
// ********************************
// Spinner DatePicker コントロールの処理
// ********************************
dp.setSpinnersShown(true);
dp.setCalendarViewShown(false);
Log.i("lightbox", String.format("%d/%d/%d", dp.getYear(),(dp.getMonth()+1),dp.getDayOfMonth() ) );
}
});
// ******************************
// ボタン2
// CalendarView
// ******************************
MainActivity.this.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ********************************
// CalendarView DatePicker ダイアログの処理
// ********************************
DatePickerDialog CalendarView;
CalendarView = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Log.i("lightbox", String.format("%d-%d-%d",year,(monthOfYear+1),dayOfMonth ) );
}
}, year, monthOfYear, dayOfMonth); // 表示前に日付を設定
// 表示前に日付を設定する時の日付の変更方法
CalendarView.getDatePicker().updateDate(year, monthOfYear, dayOfMonth);
// 表示方法の変更
CalendarView.getDatePicker().setSpinnersShown(false);
CalendarView.getDatePicker().setCalendarViewShown(true);
CalendarView.show();
// ********************************
// CalendarView DatePicker コントロールの処理
// ********************************
dp.setSpinnersShown(false);
dp.setCalendarViewShown(true);
Log.i("lightbox", String.format("%d/%d/%d", dp.getYear(),(dp.getMonth()+1),dp.getDayOfMonth() ) );
}
});
// ******************************
// ボタン3
// Spinner DialogFragment
// Spinner + CalendarView
// ******************************
MainActivity.this.findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ********************************
// ダイアログ・フラグメント
// ********************************
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
// ********************************
// Spinner + CalendarView
// DatePicker コントロールの処理
// ********************************
DatePicker dp = (DatePicker) MainActivity.this.findViewById(R.id.datePicker);
dp.setSpinnersShown(true);
dp.setCalendarViewShown(true);
Log.i("lightbox", String.format("%d/%d/%d", dp.getYear(),(dp.getMonth()+1),dp.getDayOfMonth() ) );
}
});
}
// ******************************
// DialogFragment
// ******************************
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// 初期値を DatePicker コントロールより取得
DatePicker dp = (DatePicker) DatePickerFragment.this.getActivity().findViewById(R.id.datePicker);
int year = dp.getYear();
int month = dp.getMonth();
int day = dp.getDayOfMonth();
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
Log.i("lightbox", String.format("%d-%d-%d",year,(month+1),day ) );
}
}
}