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索引出界旋转 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • 如何对这个字符串进行子串化

    我想得到这个字符串的 4 个部分 String string 10 trillion 896 billion 45 million 56873 我需要的4个部分是 10万亿 8960亿 4500万 和 56873 我所做的是删除所有空格 然
  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 如何使用 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