Search code examples
androidandroid-datepickerandroid-timepicker

change title when user select date


I want to change title(User selected date to be shown) when user making change in the Date picker.any idea i am using this code.ondatechange not working hear

public void showDatePicker(){
    LayoutInflater inflat=(LayoutInflater) getLayoutInflater();
    final AlertDialog.Builder pick=new AlertDialog.Builder(this);
    View customView=inflat.inflate(R.layout.pickdate, null);

    final DatePicker datePicker = 
            (DatePicker) customView.findViewById(R.id.datePicker1);
    TimePicker timePicker=(TimePicker) customView.findViewById(R.id.timePicker1);
    timePicker.setBackgroundResource(R.drawable.ic_launcher);
    //datePicker.setMinDate(minDate.getTimeInMillis());
    String title=String.valueOf(datePicker.getDayOfMonth());
    pick.setView(customView);
    pick.setTitle(title);
    Calendar today=Calendar.getInstance();       
     pick.setPositiveButton(android.R.string.ok,new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

            //Toast.makeText(getApplicationContext(), String.valueOf(datePicker.getYear()), Toast.LENGTH_SHORT).show();

        }
    });
     pick.setNegativeButton(android.R.string.cancel,new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {


            }
        });                   
    pick.show();
}

Solution

  • Try this out. It works for me while changing the date.

    Calendar thisDay;   
    thisDay = Calendar.getInstance();   
    
    
    datePicker.init(thisDay.get(Calendar.YEAR),
                    thisDay.get(Calendar.MONTH),
                    thisDay.get(Calendar.DAY_OF_MONTH),
                    new OnDateChangedListener() {
                        @Override
                        public void onDateChanged(DatePicker view, int year,
                                int monthOfYear, int dayOfMonth) {
                            String myDate = String.valueOf(dayOfMonth);
                            String myMonth =String.valueOf(monthOfYear);
    
                            if (myDate.length() == 1) {
                                myDate = "0" + dayOfMonth;
                            }
                            if (myMonth.length() == 1 && monthOfYear < 9) {
                                myMonth = "0" + (monthOfYear + 1);
                            } else {
                                myMonth = String.valueOf((monthOfYear + 1));
                            }
                            textview.setText(year + "-" + myMonth + "-" + myDate);
                        }
                    });