android numberpicker索引出界旋转

2023-12-13

我正在尝试创建一个自定义时间选择器。但遇到的问题是当我旋转屏幕时。另外,如果我按主页按钮离开应用程序,当我返回时出现相同的错误时,它会崩溃。

public class MyTimePicker extends RelativeLayout {

private NumberPicker hour;
private NumberPicker minute;
private NumberPicker am;
private int interval = 5;

public MyTimePicker(Context context) {
    super(context);
    init();}

public MyTimePicker(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();}

public MyTimePicker(Context context, AttributeSet attrs, int  defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();}  

    private void init() {
    LayoutInflater inflater = LayoutInflater.from(getContext());
    if (inflater != null) {

        String[] ams = new String[2];
        ams[0]="AM";
        ams[1]="PM";

        root = inflater.inflate(R.layout.my_time_picker, this, true);
        hour = (NumberPicker) root.findViewById(R.id.hour);
        minute = (NumberPicker) root.findViewById(R.id.minute);
        am = (NumberPicker) root.findViewById(R.id.am);  am.setDisplayedValues(ams);
        am.setWrapSelectorWheel(true);
        am.setMinValue(0);
        am.setMaxValue(1);

       String[] hours = new String[24];

       for (int i = 0; i < 24; i++) {
        hours[i]= "" + (i < 12 ? i + 1 : i - 11);
      }

    String[] mins = new String[60 / interval];
    NumberFormat formatter = new DecimalFormat("00");

    for (int i = 0; i < mins.length; i++) {
        mins[i] = formatter.format(i * interval);
    }

    hour.setDisplayedValues(hours);//This is what causes the error
    hour.setWrapSelectorWheel(true);

    hour.setMinValue(0);
    hour.setMaxValue(hours.length - 1);

    minute.setDisplayedValues(mins);//This is what causes the error

    minute.setWrapSelectorWheel(true);

    minute.setMinValue(0);
    minute.setMaxValue(mins.length - 1); 
     }
   }
}

这是我收到的错误

06-24 15:15:50.509    2006-2006/com.E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.mye.appo, PID: 2006
java.lang.IndexOutOfBoundsException: setSpan (2 ... 2) ends beyond length 0
        at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1018)
        at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:611)
        at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:607)
        at android.text.Selection.setSelection(Selection.java:76)
        at android.widget.EditText.setSelection(EditText.java:92)
        at android.widget.NumberPicker$SetSelectionCommand.run(NumberPicker.java:2189)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

我发现如果仅在 if(this.isVisible()) 时设置片段或活动中的显示值,我可以防止此崩溃

据我发现这似乎是一个生命周期问题


due to bug- 在使用 NumberPicker 对象之前尝试设置:

NumberPicker.setSaveFromParentEnabled(false);       
NumberPicker.setSaveEnabled(false);

我打开了这个问题以及数字选择器的其他错误:

在 code.google 报告了选择器错误

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android numberpicker索引出界旋转 的相关文章

  • 从队列更新活动的最佳方法

    我有一个LinkedBlockingQueue在我的 生产者 调解者 消费者 模型中的调解者中 Producer 首先更新将 Mediator 添加到 ActivityQueue 中 接下来 消费者 活动在队列中等待 侦听并获取下一个项目
  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 删除视图并重新创建它

    有没有办法删除设置的视图 setContentView R layout set map center mapView MapView findViewById R id mapview 如果我再次调用此视图 则会收到一条错误消息 java
  • 删除 json 对象字符串中的“\”

    如何删除下面字符串中的特殊字符 String x message content toom recipients id 1000001865 room subject room 我使用了 x replaceAll 但它不起作用 您必须转义正
  • 在Android内存中存储gif图像

    我对安卓还很陌生 我想将图像保存到内存中 然后从内存中检索图像并将其加载到图像视图中 我已使用以下代码成功将图像存储在内存中 void saveImage String fileName img cnt jpg File file new
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • 如何更改对话框的默认黑色暗淡背景“颜色”(而不是暗淡量)?

    这是随机显示的图像Dialog在网上找到的 我一直在实施一个自定义Dialog 我可以处理对话框上的几乎所有内容 除了对话框本身下方的默认黑色昏暗背景之外 但在其后面的整个屏幕上 基本上我想改变它color和阿尔法值 我一直在 StackO
  • 有没有办法替代Android中的标准Log?

    有没有办法以某种方式拦截对 android 中标准 Log 的调用并执行其他操作 在桌面 Java 中 人们通常会得到一些记录器 因此有多种方法可以安装不同的日志处理程序 实现 但是 Android似乎对Log有静态调用 我找不到任何有关替
  • Android Studio:Android 设备监视器未显示我的设备

    我的真实设备是索尼 Xperia c6502安卓版本4 3 我确定我将其连接到我的计算机然后打开开发者选项 USB调试 on 在 SDK 管理器中 Google USB 驱动程序已安装 I downloaded Xperia Z Drive
  • 如何在我的 Android 应用程序中实现应用内购买?

    如何在我的 Android 应用程序中实现应用内购买 我提到 http developer android com guide market billing billing integrate html billing service ht
  • 无论如何,要控制宋何时选择Android.bp,何时不选择?

    使用新的构建系统 即 Soong 安卓取代Android mk with Android bp 还有 Android Q 及以上版本 Soong将选择所有Android bp文件 无论所有文件都存在于何处 早些时候 对于 2 级和 3 级模
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • Android 中带有透明背景的 ImageButton [重复]

    这个问题在这里已经有答案了 我已经按照这篇文章在android中制作ImageButton 安卓图像按钮 https stackoverflow com questions 2283444 android image button 图像出现
  • 取消通知

    我使用Onesignal推送通知 需要取消所有onPause和onResume的通知 NotificationManager notificationManager NotificationManager getApplicationCon
  • 从 Handler.obtainMessage() 获取什么参数

    我正在使用线程来执行一些 BT 任务 我正在尝试向 UI 线程发送消息 以便我可以基于我的 BT 线程执行 UI 工作 为此 我使用处理程序 但我不知道如何检索发送到处理程序的数据 要发送数据 我使用 handler obtainMessa
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • 获取当前图片在图库中显示的位置

    在我的应用程序中 我有一个图片库 但我想检测当前显示图像的位置 例如 当我启动我的活动时 位置是 0 但是当我在图库中滚动时 我想获取当前显示图像的位置 我尝试过 OnFocusChanged OnItemClicked 但只有当我单击图库
  • compileReleaseKotlin 失败并出现 java.lang.ClassNotFoundException:com.sun.tools.javac.util.Context

    我正在尝试使用 gradlew 通过终端构建我的 Android 项目 其中包含库模块 在 Android Studio 中 它编译并安装成功 但是当我尝试运行时 gradlew assembleDebug我得到以下堆栈跟踪 Using k
  • Android中绑定适配器有什么用?

    我一直在阅读有关Android中绑定适配器的文章 但我似乎不明白它 何时使用绑定适配器 有人可以用一个简单的例子来解释它吗 我读过的一篇文章在主活动中有一个绑定适配器 绑定适配器有一个参数 toastMessage 显然 只要 toastM

随机推荐

  • 如何使用 Python/Django 在电子邮件中发送内联图像?

    我正在尝试使用 Python Django 发送带有内联图像的电子邮件 Here是显示我是如何做的代码 它仍在开发中 因此 现在要做的就是发送一封虚拟电子邮件 其中嵌入了大黄蜂的图片 然而 当我在 Gmail 收件箱中收到电子邮件时 我只看
  • 头文件中的变量声明 - 静态与否?

    当重构一些 defines我在 C 头文件中遇到类似于以下内容的声明 static const unsigned int VAL 42 const unsigned int ANOTHER VAL 37 问题是 静电会产生什么差异 如果有的
  • 检查 Glassfish DAS 是否正在以编程方式运行

    即使 Glassfish DAS 部署在本地计算机或远程计算机上 如何检查它是否正在以编程方式运行 使用Java6 我找到了一种除了 Linux 脚本之外检查 DAS 是否启动的方法 通过这种方式 我的应用程序和 DAS 是否位于同一台计算
  • PyQt5 GUI - 使用 PyInstaller 制作的 exe 无法打开

    我有一个 GUI 当我从 Anaconda Prompt 执行它时 它运行得非常好 我得到以下窗口作为输出 我已经使用 pip 安装了 pyinstaller 然后运行了该行 pyinstaller exe onefile my file
  • 如何将正在迭代的迭代器传递给函数?

    我正在迭代一个数组 根据当前值 我想将迭代器传递给子函数并让它处理多个值 然后在退出子函数时 继续迭代数组 下面是我迄今为止所能达到的最接近的结果 但我不断得到error use of moved value iter 我尝试过研究生命周期
  • 将 shell 输出重定向到文件 [重复]

    这个问题在这里已经有答案了 我正在 AIX 6 上工作 在 Korn Shell 上运行 java 命令 并尝试调试类加载问题 我把 verbose class 打印加载的类 然后 gt gt h ome user log log 将控制台
  • 如何配置 Unity 为 IEnumerable 注入数组

    我有一个课程需要IEnumerable我想用 Unity 解析它的构造函数参数并注入一个对象数组 这些简单的类说明了问题 public interface IThing int Value get public class SimpleTh
  • 如何构建支持超过 223 列鼠标输入的 Curses 程序

    我正在尝试让一个curses程序与我的终端跨显示器一起工作 但是 x 坐标无法移过第 223 列 而是循环移动 在源代码中 这似乎是因为它们被定义为 8 位 并且位置值仅在前 32 个值之后开始 即 x raw x 这是一个示例程序http
  • C++ 数组初始化

    float minTime 7 FLT MAX for int i 0 i lt 7 i cout lt lt Min lt lt minTime i lt lt endl 为什么我会得到以下输出 Min 3 40282e 038 Min
  • 全局变量和Python多重处理[重复]

    这个问题在这里已经有答案了 可能的重复 Python 多处理全局变量更新未返回到父级 我使用的是一台具有多个内核的计算机 为了提高性能 我真的应该使用多个内核 但是 我很困惑为什么这些代码没有达到我的预期 from multiprocess
  • 字符串中的 JavaScript var

    所以我有这段代码 想知道如何将我的 javascript var 放入这个字符串中 我似乎无法为自己编写工作代码 对于我想要的图像源picture value在那里 我尝试过不同的解决方案 但自己没能解决 非常感谢所有帮助 var text
  • 将多个“滑块”添加到同一个图表

    我正在使用 R 编程语言 使用 plotly 库 我能够制作以下交互式图表 library dplyr library ggplot2 library shiny library plotly library htmltools libra
  • 为什么上传alamofire后台请求不在后台执行?

    我使用 alamofire 将 30 mb zip 文件上传到服务器 这是我的要求 let configuration URLSessionConfiguration background withIdentifier identifire
  • 搜索和替换操作

    我有一个包含 URL 值的列表 例如 http farm6 static flickr com 5149 5684108566 aed8b9b52d s jpg 我怎样才能改变 s最后到 m对于所有发生的情况 尝试这个 str http f
  • Apache交叉编译错误./gen_test_char:无法执行二进制文件

    我花了很长时间才找到这个错误的解决方案 当尝试为 Arm 交叉编译 Apache 时 我确信这可能发生在许多其他架构上 我会从服务器文件夹中得到这个错误 gen test char cannot execute binary file 这意
  • @ngtools\webpack AOT 不起作用或在 95% 发射时冻结

    我一直在尝试让 AOT 与我的 Webpack 应用程序一起工作 ngtools webpack 有人能帮我吗 它似乎可以工作 但是 compiler js 仍然包含在捆绑包中 此外 它仍在寻找我的所有 html 文件 并在所有组件模板上获
  • C的隐藏特性

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我知道所有 C 编译器实现背后都有一个标准 因此不应该有任何隐藏功能 尽管如此 我确信所有 C 开发人员都有他们一直使用的隐藏 秘
  • 从 Python 中调用命名空间获取本地变量

    我想从被调用函数中检索 Python 的局部变量 有什么办法可以做到这一点吗 我意识到这对于大多数编程来说并不合适 但我基本上是在构建一个调试器 例如 def show locals put something in here that s
  • 在事件循环中共享队列

    是否可以在一个事件循环中的不同任务上共享 asyncio Queue 用例 两项任务正在队列上发布数据 一项任务正在从队列中获取新项目 所有任务都以异步方式进行 main py import asyncio import creator a
  • android numberpicker索引出界旋转

    我正在尝试创建一个自定义时间选择器 但遇到的问题是当我旋转屏幕时 另外 如果我按主页按钮离开应用程序 当我返回时出现相同的错误时 它会崩溃 public class MyTimePicker extends RelativeLayout p