Android如何在单击按钮时在日期选择器中显示年份第一

时间:2018-07-16 07:39:31

标签: java android

datepickerLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        final Calendar calendar = Calendar.getInstance();
        int yy = calendar.get(Calendar.YEAR);
        int mm = calendar.get(Calendar.MONTH);
        int dd = calendar.get(Calendar.DAY_OF_MONTH);

       DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(),new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                datePickerDialog.getTouchables().get(0).performClick();

                String strdate=year+"-"+(monthOfYear+1)+"-"+dayOfMonth;
            }
        }, yy, mm, dd);
        datePickerDialog.getDatePicker().setMinDate(calendar.getTimeInMillis());
        datePickerDialog.show();
    }
});

在选择要选择日期的年份后,单击按钮时,我想在日期选择器中显示年份。

1 个答案:

答案 0 :(得分:2)

您只需使用以下代码即可实现

 DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, year, month, day);
 dialog.getDatePicker().getTouchables().get( 0 ).performClick();

使用下面的类打开对话框

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
OnDateOfBirthSelection registrationIIFragment;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the current date as the default date in the picker
    final Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);

    // Create a new instance of DatePickerDialog and return it
    DatePickerDialog abc = new DatePickerDialog(getActivity(), this, year, month, day);
    //18 Years =568,025,136,000 Milliseconds
    double diff = System.currentTimeMillis() - 568025136000.0;
    abc.getDatePicker().setMaxDate((long) diff);
    abc.getDatePicker().getTouchables().get( 0 ).performClick();
    return abc;
}

public void onDateSet(DatePicker view, int year, int month, int day) {
    // Do something with the date chosen by the user
    //  tv1.setText("Year: "+view.getYear()+" Month: "+view.getMonth()+" Day: "+view.getDayOfMonth());
    registrationIIFragment.onDateOfBirthSelected(view.getDayOfMonth() + " - " + (view.getMonth() + 1) + " - " + view.getYear());
}

public void setCallbackListener(OnDateOfBirthSelection registrationIIFragment) {
    this.registrationIIFragment = registrationIIFragment;
}

public interface OnDateOfBirthSelection {
    public void onDateOfBirthSelected(String s);
}  }

在按钮中单击在类实例上方创建并调用show方法。

 DatePickerFragment newFragment = new DatePickerFragment();
            newFragment.setCallbackListener(this);
            newFragment.show(getSupportFragmentManager(), "datePicker");

以上代码将输出显示为下图

enter image description here

希望这会有所帮助