【问题标题】:when using datepicker in android 4.0 and above..how to avoid the calender view在 android 4.0 及更高版本中使用 datepicker 时..如何避免日历视图
【发布时间】:2012-09-24 07:21:05
【问题描述】:

我在 android 2.2 中完成了一个项目,其中包含一个日期选择器并根据屏幕大小为其设置属性,但是当我在 android 4.0 中安装它时...日期选择器视图包括一个日历视图... .如何避免日历视图以及 android 4.0 中的日期选择器...下面是 2.2 和 4.1 中日期选择器的图像

【问题讨论】:

标签: android android-datepicker


【解决方案1】:

您可以使用yourDatepicker.setCalendarViewShown(false);

此方法适用于Api >= 11

【讨论】:

  • 是的,我看到了这个命令......但是当我在 2.2 中构建我的项目时无法让它工作......这个命令不起作用
  • @aravindvarma 您必须在 android 4.0 中开发项目并将最低 sdk 版本设置为 8
  • 谢谢有没有其他方法可以通过在 android 2.2 中构建来做到这一点
  • 由于我的项目在 2.2 中完全完成。我可以将其更改为 4.0 还是我应该重新编写代码
  • @aravindvarma 无需再次编写代码。换成安卓4.0
【解决方案2】:

使用 Raval 的代码。但要在 Android 11 以下运行它,请执行以下操作:

int currentapiVersion = android.os.Build.VERSION.SDK_INT;
        if (currentapiVersion >= 11) {
          try {
            Method m = datePicker.getClass().getMethod("setCalendarViewShown", boolean.class);
            m.invoke(datePicker, false);
          }
          catch (Exception e) {} // eat exception in our case
        }

现在您可以在所有 Android 版本上使用它(API > 3)

【讨论】:

  • 我想通了...谢谢您的回复
  • 我有一个问题 :) 上面的代码在 API 8 上运行良好。但在 API 4 上它崩溃了。问题是 setCalendarViewShown() 调用,尽管由于 if 语句而没有调用它。不知何故,它在启动时被解析并且应用程序崩溃。
  • 调用需要 API 级别 11(当前最低为 8):android.widget.DatePicker#setCalendarViewShown。我做错了什么?
  • 有趣地包含上面的 if 语句的主体会导致我收到错误。它现在似乎可以工作了。
【解决方案3】:

如果你有 DatePicker 的实例,你必须在你的方法中只写这个 `

        int currentapiVersion = android.os.Build.VERSION.SDK_INT;
        if (currentapiVersion >= 11) {
            yourDatePickerInstance.setCalendarViewShown(false);
        }`

【讨论】:

    【解决方案4】:

    避免 DatePicker 中的日历用于以后的 API

    添加

    android:datePickerMode="spinner"
    

    而不是

    android:calenderViewShown="false"
    

    在 DatePicker 小部件的布局 XML 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      相关资源
      最近更新 更多