Android Date selector with only Day and Month

前端 未结 2 827
难免孤独
难免孤独 2021-02-15 17:37

I am looking for a way to customize the Date selector in Android to only show the day and month (i.e. no year).

I am creating a dialog based on How to display date picke

相关标签:
2条回答
  • 2021-02-15 17:41

    This is Works for me :

    DatePickerDialog monthDatePickerDialog = new DatePickerDialog(activity, 
    AlertDialog.THEME_HOLO_LIGHT, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
            monthTextView.setText(dayOfMonth+ "/" + (month + 1));
        }
    }, yearNow, monthNow, dayNow){
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getDatePicker().findViewById(getResources().getIdentifier("year","id","android")).setVisibility(View.GONE);
        }
    };
    monthDatePickerDialog.setTitle("select_month");
    monthDatePickerDialog.show();
    
    0 讨论(0)
  • 2021-02-15 17:48

    Here give this a go. Its APIv11+ but there are other ways on lower API versions.

    DatePickerDialog dlg = new DatePickerDialog(context, datePickerListener, 
        dueDateCalendar.get(Calendar.YEAR), 
        dueDateCalendar.get(Calendar.MONTH), 
        dueDateCalendar.get(Calendar.DAY_OF_MONTH));
    int year = context.getResources().getIdentifier("android:id/year", null, null);
    if(year != 0){
        View yearPicker = dlg.getDatePicker().findViewById(year);
        if(yearPicker != null){
            yearPicker.setVisibility(View.GONE);
        }
    }
    return dlg;
    

    Updated code: This should do the job.

    DatePickerDialog dlg = new DatePickerDialog(context, datePickerListener, 
        dueDateCalendar.get(Calendar.YEAR), 
        dueDateCalendar.get(Calendar.MONTH), 
        dueDateCalendar.get(Calendar.DAY_OF_MONTH))
    {
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            int year = getContext().getResources()
                .getIdentifier("android:id/year", null, null);
            if(year != 0){
                View yearPicker = findViewById(year);
                if(yearPicker != null){
                    yearPicker.setVisibility(View.GONE);
                }
            }
        }
    };
    return dlg;
    
    0 讨论(0)
提交回复
热议问题