3

テキストビューで選択した日付を取得するには、DatePickerDialog を使用する必要があります。テキストビューをクリックすると、DatePickerDialog が表示されます。

私はこれを書きました

private DatePickerDialog.OnDateSetListener dateOnDateSetListener = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
        datePick.setText(new StringBuilder().append(selectedDay).append("-").append(selectedMonth).append("-").append(selectedYear));
    }
};

datePick = (TextView) findViewById(R.id.date_pick);

    datePick.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            Calendar calendar = Calendar.getInstance();
            year = calendar.get(Calendar.YEAR);
            monthOfYear = calendar.get(Calendar.MONTH);
            dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
            new DatePickerDialog(getContext(), dateOnDateSetListener, year, monthOfYear, dayOfMonth);
        }
    });

しかし、それは機能していません。少しグーグルでこれに変更して動作しましたが、なぜそうなのか理解できませんか? 上記のコードで何かを台無しにしましたか

datePick = (TextView) findViewById(R.id.date_pick);

    datePick.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            Calendar calendar = Calendar.getInstance();
            year = calendar.get(Calendar.YEAR);
            monthOfYear = calendar.get(Calendar.MONTH);
            dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
            showDialog(DATE_DIALOG_ID);
        }
    });

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
       // set date picker as current date
       return new DatePickerDialog(this, dateOnDateSetListener, 
                     year, monthOfYear,dayOfMonth);
    }
    return null;
}

private DatePickerDialog.OnDateSetListener dateOnDateSetListener = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
        datePick.setText(new StringBuilder().append(selectedDay).append("-").append(selectedMonth).append("-").append(selectedYear));
    }
};
4

1 に答える 1