java - CalendarView 始终返回当天,忽略用户选择的内容

标签 java android android-fragments mobile android-studio

屏幕中有一个日历 View ,我想在同一屏幕上显示所选日期。我希望它随着用户更改所选日期而动态更改。

这在我的手机 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 在手机和平​​板电脑中表现不同的原因可能是什么?谢谢您的回答。

最佳答案

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

中使用 Calendar
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
}

关于java - CalendarView 始终返回当天,忽略用户选择的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31602849/

相关文章:

java - Spring 5 处理 null Beans 的方式发生了变化?

java - Netty - 如何获得所有客户 channel ?

java - "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure"到远程数据库

android - 在 Android Studio 中构建一个项目创建多个 apk 文件

android - 根据标题设置 Sprite 旋转

java - 多次从字符串中获取子字符串

java - 在 Java 项目中放置文本文件的文件夹以及如何引用文件夹

android - 抽屉导航 - 禁用点击抽屉后面的项目

Android 嵌套 fragment

android - Activity 在旋转更改时重新启动