CalendarView始终返回当前日期,忽略用户选择的内容

时间:2015-07-24 05:30:46

标签: java android android-fragments mobile android-studio

屏幕上有CalendarView,我想在同一屏幕上显示所选日期。我希望它在用户更改所选日期时动态更改。

这在我的手机LG G2中非常完美。每当我在日历中选择日期时,它会显示该日期。但是在Nexus 10平板电脑中,无论我选择哪个日期,它都会返回当天。如果我一直在改变日期,那么任何改变都不会显示当天。

这是我的代码的相关部分。

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootview = inflater.inflate(R.layout.calendar_layout, container, false);
    calendarView = (CalendarView) rootview.findViewById(R.id.calendarView);
    selectedDate = (TextView) rootview.findViewById(R.id.textView5);
    calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth){
            date = new Date(calendarView.getDate());
            dateString = simpleDate.format(date);
            MainActivity.selectedDate=dateString;
            selectedDate.setText(dateString);
        }
    });
    return rootview;
}

代码有什么问题吗? CalendarView在手机和平​​板电脑中的作用可能是什么原因?谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

我在Lollipop的设备上遇到了完全相同的问题。我唯一能想到的是在Calendar

中使用onSelectedDayChange
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth){
    Calendar c = Calendar.getInstance();
    c.set(year, month, dayOfMonth);
    Date d = c.getTime; // here is your correct date
}