2016-06-17 3 views
0
//When user clicks "other". 
    public void setDate(View view) { 
     DateTime dateTime=new DateTime(); 


     new DatePickerDialog(CreateEventActivity.this, listener, dateTime.getYear(), dateTime.getMonthOfYear(), dateTime.getDayOfWeek()).show(); 
    } 

    DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      DateTime eventDate = new DateTime(); 
      eventDate.withYear(year); 
      eventDate.withMonthOfYear(monthOfYear + 1); 
      eventDate.withDayOfMonth(dayOfMonth); 

      time = eventDate; 

      Context appContext = getApplicationContext(); 
      Toast.makeText(appContext, dayOfMonth + "/" + (monthOfYear + 1) + "/" + year + "," +eventDate.dayOfWeek().getAsText(), Toast.LENGTH_LONG).show(); 
      dateTxt.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year); 
      dayTxt.setText(eventDate.dayOfWeek().getAsText()); 

      otherButton.setBackgroundColor(Color.parseColor("#77B3FC")); 
      todayButton.setBackgroundColor(Color.parseColor("#DBDBDB")); 
      tomorrowButton.setBackgroundColor(Color.parseColor("#DBDBDB")); 



     } 
    }; 

У меня есть проблемы с этой частью: eventDate.dayOfWeek().getAsText() Это показывает неправильный день недели, но дата в цифрах это хорошо.Попытка показать выбранный день как текст после DatePicker

(Только начал использовать Joda-Time, так что я не уверен в этом ...)

EDIT: дата в цифрах, как: 23.7.16 печатается правильно, но я хочу его покажите, какой день в неделю, как «понедельник» ... Я заметил, что он всегда пишет сегодняшнее имя. В тоста и в текстовом виде ...

Например, для нескольких различных дат он будет показывать: 23.6.16, пятница | 15.7.16, Пятница | 30.8.17, пятница

+0

я не знаю, если это может привести к ошибке, но создать DatePickerDialog, он ожидает, что день месяца, а не в день неделя. Из документации для Android 'DatePickerDialog (контекст контекста, DatePickerDialog.OnDateSetListener listener, int year, int month, int dayOfMonth)' –

+0

Я попытался изменить его, тот же результат –

+0

День напечатан правильно в Toast или ошибочен в обоих? В чем разница? если это 1 день, это нормально, потому что в DayPicker начало недели в 0 –

ответ

0

другие данные являются правильными, потому что вы используете данные DataPicker и не из JodaTime, может иметь некоторые ошибки в вашей строительной попробовать:

DateTime eventDate = new DateTime(year,monthOfYear+1,dayOfMonth,0,0,0); 

0,0 , 0 в часы, минуты и секунды, удалите 3 линии:

eventDate.withYear(year); 
eventDate.withMonthOfYear(monthOfYear + 1); 
eventDate.withDayOfMonth(dayOfMonth); 
Смежные вопросы