В настоящее время я использую собственное диалоговое окно с модификацией, чтобы скрыть дату Spinner, и это работает нормально.Custom Date Picker Dialog
Но теперь я хочу, чтобы установить дату в таком формате, что, когда я прясть месяц блесну или год спиннера диалоговом окне просто показать месяц и год не полная дата каландр мой собственный код для диалога выбора даты выглядит следующим образом:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
DatePickerDialog datePickerDialog = this.customDatePicker();
return datePickerDialog;
}
return null;
}
private DatePickerDialog.OnDateSetListener datePickerListener
= new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
@Override
public void onDateSet(DatePicker datepickerView, int selectedYear,
int selectedMonth, int selectedDay) {
/* year = selectedYear;
month = selectedMonth;
day = selectedDay;*/
mynewYear=selectedYear;
myNewMonth=selectedMonth;
myNewDay=selectedDay;
try {
checkDate();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*time_date_TV.setText(new StringBuilder()
.append(myNewMonth + 1).append("/")
.append(myNewDay).append("/").append(mynewYear));
*/
}
};
private DatePickerDialog customDatePicker() {
DatePickerDialog dpd = new DatePickerDialog(context, android.R.style.Theme_Holo_Light_Dialog,datePickerListener,
year, month,day);
if(month==0)
{
mmonth="January";
}
if(month==1)
{
mmonth="Faburary";
}
if(month==2)
{
mmonth="March";
}
if(month==3)
{
mmonth="April";
}
if(month==4)
{
mmonth="May";
}
if(month==5)
{
mmonth="June";
}
if(month==6)
{
mmonth="July";
}
if(month==7)
{
mmonth="August";
}
if(month==8)
{
mmonth="September";
}if(month==9)
{
mmonth="October";
}
if(month==10)
{
mmonth="November";
}
if(month==11)
{
mmonth="December";
}
dpd.setTitle(""+mmonth+", "+year);
try {
Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
for (Field datePickerDialogField : datePickerDialogFields) {
if (datePickerDialogField.getName().equals("mDatePicker")) {
datePickerDialogField.setAccessible(true);
DatePicker datePicker = (DatePicker) datePickerDialogField
.get(dpd);
Field datePickerFields[] = datePickerDialogField.getType()
.getDeclaredFields();
for (Field datePickerField : datePickerFields) {
if ("mDayPicker".equals(datePickerField.getName())
|| "mDaySpinner".equals(datePickerField
.getName())) {
datePickerField.setAccessible(true);
Object dayPicker = new Object();
dayPicker = datePickerField.get(datePicker);
((View) dayPicker).setVisibility(View.GONE);
}
}
}
}
} catch (Exception ex) {
}
return dpd;
}
когда диалоговое окно в первый раз получить выскочил это работает отлично, как я установить название
DatePickerDialog.setTitle("");
но работает хорошо, когда диалоговое окно получить выскочило в первый раз, но я хочу обновить ondatechangelistner
так, как я могу это сделать