尝试在 DatePicker 之后将所选日期显示为文本
Trying to show to chosen day as text after the DatePicker
//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()
它显示错误的星期几,但数字日期没问题。
(刚开始使用 Joda-Time 所以我不太确定...)
编辑:
数字中的日期如:23.7.16 打印正确,但我希望它显示星期几,如 "Monday"...我注意到它总是写今天的名字。在 toast 和文本视图中...
例如, 对于几个不同的日期,它将显示:
23.6.16,星期五|
16 年 7 月 15 日,星期五|
2017 年 8 月 30 日,星期五
其他数据都是对的,因为你用的是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);
//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()
它显示错误的星期几,但数字日期没问题。
(刚开始使用 Joda-Time 所以我不太确定...)
编辑: 数字中的日期如:23.7.16 打印正确,但我希望它显示星期几,如 "Monday"...我注意到它总是写今天的名字。在 toast 和文本视图中...
例如, 对于几个不同的日期,它将显示: 23.6.16,星期五| 16 年 7 月 15 日,星期五| 2017 年 8 月 30 日,星期五
其他数据都是对的,因为你用的是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);