从日期选择器小部件中隐藏年份

2024-04-25

我试图从日期选择器小部件中隐藏年份字段。这可能看起来像一个重复的问题,但之前问题给出的答案并不能帮助我隐藏年份字段。

这是我的代码::

@Override 
protected void onCreate(Bundle savedInstanceState) {

    int month = 0;
    int year = 0;
    int day = 0;
    OnDateSetListener datePickerListener = null;
    CustomDatePickerDialog dp = new CustomDatePickerDialog(getBaseContext(), android.R.style.Theme_Holo_Light_Dialog,  datePickerListener, year, month, day);
    DatePickerDialog obj = dp.getPicker();

    picker = (DatePicker) findViewById(R.id.datePicker1);
    try {
          java.lang.reflect.Field[] f = obj.getClass().getDeclaredFields();
  //      Field f[] = picker.getClass().getDeclaredFields();
        for (java.lang.reflect.Field field : f) {
            if (field.getName().equals("prabs")) {
                field.setAccessible(true);
                DatePicker datePicker = (DatePicker) field.get(obj);
                java.lang.reflect.Field datePickerFields[] = obj.getClass().getDeclaredFields();
                for (java.lang.reflect.Field datePickerField : datePickerFields) {
                    if ("mYearPicker".equals(datePickerField.getName()) || "mYearSpinner".equals(datePickerField
                            .getName()))
                    {
                             datePickerField.setAccessible(true);
                             Object yearPicker = new Object();
                             yearPicker = datePickerField.get(datePicker);
                             ((View) yearPicker).setVisibility(View.GONE);
                    }
                }
           /*     Object yearPicker = new Object();
                yearPicker = field.get(picker);
                ((View) yearPicker).setVisibility(View.GONE);*/
            }
        }
    } 
    catch (SecurityException e) {
        Log.d("ERROR", e.getMessage());
    } 
    catch (IllegalArgumentException e) {
        Log.d("ERROR", e.getMessage());
    } 
    catch (IllegalAccessException e) {
        Log.d("ERROR", e.getMessage());
    }
    obj.show();
}

主类之外::

class CustomDatePickerDialog extends DatePickerDialog implements OnDateChangedListener
{
    private DatePickerDialog prabs;

    @SuppressLint("NewApi")
    public CustomDatePickerDialog(Context context, int theme,
            OnDateSetListener listener, int year, int monthOfYear,
            int dayOfMonth) 
    {
        super(context, theme, listener, year, monthOfYear, dayOfMonth);
        // TODO Auto-generated constructor stub
        prabs = new DatePickerDialog(context, theme, listener, year, monthOfYear, dayOfMonth);
        prabs.getDatePicker().init(2015, 01, 8, this);  
        updateTitle(monthOfYear,dayOfMonth);
    }

    private void updateTitle(int Month, int Day)
    {
        // TODO Auto-generated method stub
        Calendar mCalendar = Calendar.getInstance();
        mCalendar.set(Calendar.MONTH, Month);
        mCalendar.set(Calendar.DAY_OF_MONTH, Day);
        prabs.setTitle(getFormat().format(mCalendar.getTime()));
    }

    public SimpleDateFormat  getFormat() {
        // TODO Auto-generated method stub
        return new SimpleDateFormat("MMM, dd");
    }

    public void onDateChanged(DatePicker view,int year, int month,int day)
    {
        updateTitle(month,day);
    }

    public DatePickerDialog getPicker()
    {
        return this.prabs;
    }
}

添加之前obj.show();它显示带有日历的整个小部件,但我只想要带有日期和月份的小部件

尝试解决这个问题已经很多天了。但每次都失败:( 任何建议都会有很大帮助。 谢谢..

EDIT::

年份字段表示日期选择器小部件的 Eclipse 年份字段

我提到如何仅在Android的日期选择器中显示年份 https://stackoverflow.com/questions/10793811/how-to-display-year-only-in-date-picker-in-android and 自定义日期选择器对话框 https://stackoverflow.com/questions/18249608/custom-date-picker-dialog

错误日志::

01-09 11:26:20.780: E/AndroidRuntime(23840): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application this is a crash report

试试这个,它对我有用。

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case DATE_DIALOG_ID:
        // hide year from datepicker
        DatePickerDialog dlg = new DatePickerDialog(this,
                datePickerListener, year, month, day) {
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                int year = getContext().getResources().getIdentifier(
                        "android:id/year", null, null);
                if (year != 0) {
                    View yearPicker = findViewById(year);
                    if (yearPicker != null) {
                        yearPicker.setVisibility(View.GONE);
                    }
                }
            }
        };
        return dlg;
    }
    return null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从日期选择器小部件中隐藏年份 的相关文章

  • java.lang.IllegalStateException:无法为 X 创建层 - 使用硬件层时

    我在自定义视图上使用硬件层 以便在为其 Alpha 制作动画时获得更好的性能 在我的崩溃记者上看到这次崩溃 Fatal Exception java lang IllegalStateException Unable to create l
  • Android Room 持久性库无法在库项目内工作

    我正在开发一个 Android 库 并希望在其中使用新的 Android Room 持久性库 但是 启动时我收到此错误 Caused by java lang RuntimeException cannot find implementat
  • 使用三元运算符“不执行任何操作”[重复]

    这个问题在这里已经有答案了 我想像这样使用三元运算符 仅检查true声明的一部分 foo bar Do nothing 是否可以排除该语句的 else 部分的逻辑 我尝试使用return 但编译器给出了错误 基本上我想要实现的是使用三元运算
  • FFmpegFrameRecorder 视频广播音频在 3G 网络中比视频帧更快

    我在用着FFmpegFrameRecorder用于视频广播 问题是音频比视频帧快 我正在使用以下代码 但无法生成完整的视频 音频视频时间戳存在问题 Java代码 import static com googlecode javacv cpp
  • 改造上传图片

    我正在使用 Retrofit v 2 2 0 将图片上传到我的服务器 但服务器返回一个空值 表示尚未上传图像 日志显示图片已上传 上传时文件名正确 在邮递员中它仍然有效 这可能是什么问题 上传个人资料图片 java public class
  • 如何使用 WiFi Direct 打印文本文件

    我有一个正在运行的 Android 应用程序 可以显示用户统计信息 我想将纯文本格式 txt 的小报告发送到 WiFi Direct 打印机 我已经下载了示例demo https developer android com guide to
  • 如何为多个 Android 商店支持我的 Android 应用程序?

    我最近开始在 Google Android Market 上销售我的 Android 应用程序 并实施他们的应用程序许可方案以防止未经授权使用我的应用程序 我现在正计划将其发布到 Amazon Android 应用商店 并且想知道维护我的应
  • AutoCompleteTextView sqlite填充异常

    我的第一篇文章只有不到一半的文字 因此是第二篇 完整的 文章 我正在开发一个测试应用程序 使用 sqlite 填充两个 AutoCompleteTextView 我正在使用汽车制造商和模型进行测试 自动完成的 使自动完成 模型自动完成 ma
  • Android 按文件夹列出音乐并播放

    我正在开发已经上市的安卓音乐播放器 用户要求添加一个文件夹视图来列出智能手机中包含音乐的所有文件夹 我想开发它 MediaStore 已经知道要遵循的正确路径 因为它需要知道它们每次重新扫描 SD 卡 所以我想知道是否有办法获取这些路径并使
  • 如何像 git-archive 一样归档 AOSP 存储库?

    我使用这个命令来归档 git 源代码 git archive format tgz o myproj 20180402 tgz prefix myproj master 是否有相同 相似的方法来归档 AOSP 存储库分支或标签 怎么做 任何
  • 在撰写中自动滚动多行文本字段

    我有一个多行文本字段 如下所示 val scrollState rememberScrollState 0 TextField modifier Modifier fillMaxWidth height 75 dp verticalScro
  • 调试 Android 库中的本机代码

    我的工作空间布局是 ApplicationLibrary AndroidManifest xml jni libs src Application AndroidManifest xml ant properties 如何在 Eclipse
  • 如何以编程方式在 Genymotion 上刷新 zip

    我正在尝试将谷歌应用程序刷新到 genymotion 模拟器中 我可以使用拖放功能来完成此操作 但我的项目需要 google apps zip 已加载到 genymotion 机器中并且在内部闪烁 以避免与桌面交互 我检查过类似的问题thi
  • 如何初始化 LinearLayout 变量?

    快速通知 我正在使用SharedPreferences这样我可以在重新打开应用程序时重新加载数据 Problem我有一个LinearLayout在我的应用程序的主要片段中 一切都运行顺利 直到我重新打开应用程序并尝试重新初始化LinearL
  • 如何在 android 中将日期从 24 小时格式更改为 12 小时格式(上午/下午)

    Calendar ci Calendar getInstance CiDateTime ci get Calendar MONTH 1 ci get Calendar DAY OF MONTH ci get Calendar YEAR St
  • 纹理不适用于网格 - OpenGL

    我正在使用 OpenGL Es 我已成功加载 obj 文件 网格 并且显示良好 但当我应用纹理时 它不显示 我添加了下面的代码 public void draw GL10 gl bind the previously generated t
  • AndroidJUnit4 测试未找到

    我像这样注释了我的课程 RunWith AndroidJUnit4 class public class WorkdayProviderTest 此外 还注释了我的测试方法 如下所示 Test public void insert data
  • 如何在动态创建的一组 editText 上设置 onFocusChangeListener()?

    我有这段代码 每次前一个 lineaLayout 的 edittext 失去焦点时 我都会膨胀一个包含 3 个 editText 的 LinearLayout 我只想在最近创建的 editTexts 上使用 onFocusChangeLis
  • Android,java - 无法从 asynctask 更新变量

    这是代码 声明的变量 public String gpu2dcurent 1234567 Asynctask 完成后应该更新变量 gpu2dcurent 但它没有 private class readgpu2d extends AsyncT
  • 谷歌放置片段上的Java空指针异常

    当我尝试尝试自动完成位置功能时 出现空指针异常 我像文档中一样添加了片段 并需要帮助来解决这个问题 谢谢 主要活动 package com example srinivas mapautocompletetest1 import andro

随机推荐

  • 添加新数据源(mysql)wildfly

    我正在尝试将新的数据源 mysql jdbc 驱动程序添加到我的 Wildfly 服务器 我创建了文件夹 wildfly x x x modules system layers base com mysql main 我这里有 jdbc j
  • 我可以将 Coq 证明提取为 Haskell 函数吗?

    自从学了一点 Coq 以来 我就想学着写一个所谓的除法算法的 Coq 证明 它实际上是一个逻辑命题 forall n m nat exists q nat exists r nat n q m r 我最近利用我学到的知识完成了这项任务软件基
  • 如何对二维 Java 数组进行切片?

    folks 我正在使用 JTables 并有一个二维数组 我需要删除数组中每一行的第一个元素 除此之外还有更简单的方法吗 int height data2 length int width data2 0 length Object dat
  • 需要帮助了解主干中嵌套视图的基础知识

    我一直在阅读有关backbone js 中嵌套视图的大量内容 并且了解其中的很多内容 但仍然令我困惑的一件事是 如果我的应用程序有一个 shell 视图 其中包含页面导航 页脚等子视图 这些子视图在使用应用程序的过程中不会改变 那么我是否需
  • 将 ListView 中的 SelectedItems 绑定到 Windows Phone 8.1 中的 ViewModel

    我有以下代码
  • Python / Pandas - 用于查看数据帧或矩阵的 GUI [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 Pandas 包 它创建一个 DataFrame 对象 它基本上是一个标记矩阵 通常 我的
  • Laravel mix,在resources中调用app.js

    我有一个带有 laravel 和 vuejs 的网络应用程序 我使用 laravel mix 并且在我的 webpack mix js 中我有 mix js resources assets js app js public js 在我看来
  • 我收到来自 php 和 js 的空白电子邮件

    请帮助我解码真正的问题是什么 问题是 尽管我对此代码进行了所有调整和研究 但我仍然收到一封空白电子邮件 下面是我的 html javascript ajax 和 php 代码 HTML 代码 名为 contact html 的文件
  • PHP echo 与 PHP 短 echo 标签

    它们的安全性相同吗 我被告知使用 或者 当在 JavaScript 内回显数据时 它必须是 JavaScript 编码的
  • SQL Server 的 mysqldump 等效项

    SQL Server 是否有与 MySQL 具有 mysqldump 等效的模式和数据导出 转储工具 试图重新定位旧的 ASP 站点 但我对在 Windows 服务器上工作感到很不高兴 注意 DTS 导出实用程序自己似乎可以导出数据 而无需
  • 高效生成所有小于 N 的合数(及其因式分解)

    我想构建一个高效的 Python 迭代器 生成器 它会产生 所有小于 N 的合数 连同他们的质因数分解 我将其称为 composites with factors 假设我们已经有小于 N 的素数列表 或者可以执行相同操作的素数生成器 请注意
  • 根记录器忽略记录器级别

    根记录器在 我认为 应该记录时不会记录 import logging NOTE I make sure to set the root logger level to logging DEBUG logging basicConfig fo
  • 在 SPSS 18 中指定相对路径

    在 SPSS 11 中可以指定相对路径 例子 FILE HANDLE myfile data current txt LRECL 533 DATA LIST FILE myfile 这之所以有效 是因为 SPSS 11 将工作文件夹设置为源
  • 操作员 '??'不能应用于类型“T”和“T”的操作数

    我有以下通用方法 但 VS 给了我一个编译错误 运算符 不能应用于 T 和 T 类型的操作数 public static T Method
  • Google 地图 - 未捕获 InvalidValueError:初始化不是函数

    当我加载 Google 地图显示的页面时 我总是在控制台中看到以下错误 未捕获的 InvalidValueError 初始化不是函数js 传感器 假 回调 初始化 94 将鼠标悬停在文件名上时 这显示为源自 谷歌地图窗口和地图显示得非常好
  • 在RequiredFieldValidator 触发后调用JavaScript 方法?

    表单元素被视为无效后是否可以触发 JavaScript 方法 这是我的场景 ASPX 页面上有 2 个选项卡 用户必须在两个选项卡上填写信息 用户在选项卡 2 上单击提交按钮 但是 第一个选项卡上有一个必填字段需要注意 我是否需要创建自定义
  • 无法使用 conda 安装 mpi4py 并指定预安装的 mpicc 路径

    我已经尝试安装mpi4py with env MPICC path to openmpi bin mpicc conda install c anaconda mpi4py 但我收到这样的消息 The following NEW packa
  • 无法播种用户和角色

    我正在尝试将用户和角色植入我的数据库中 目前在 C MVC4 中使用具有自动迁移功能的 Code First 实体框架 每当我打电话 更新数据库 强制 我收到以下错误 运行种子方法 System InvalidOperationExcept
  • B 样条线混淆

    我意识到这个板上有关于 B 样条主题的帖子 但这些帖子实际上让我更加困惑 所以我想有人可能能够帮助我 我有 x 值范围从 0 到 1 的模拟数据 我想用三次样条拟合我的数据 degree 3 结为 0 0 1 0 2 0 9 1 我还想使用
  • 从日期选择器小部件中隐藏年份

    我试图从日期选择器小部件中隐藏年份字段 这可能看起来像一个重复的问题 但之前问题给出的答案并不能帮助我隐藏年份字段 这是我的代码 Override protected void onCreate Bundle savedInstanceSt