- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
嘿,我有一个简单的 NumberPicker,它有 15 个值 (100,200,300,400,...,1500)。当我滚动浏览数字时,数字选择器在我到达数字 1400(位置 13)时抛出 ArrayIndexOutOfBoundsException。请参阅下面的日志。
但我真的不知道。这似乎是 numberpicker 类的错误。
这是我的代码:
tv_radius.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog = new Dialog(CostLogActivity2.this);
dialog.setContentView(R.layout.radius_picker);
dialog.setTitle("Radius");
NumberPicker np_radius = (NumberPicker) dialog.findViewById(R.id.np_radius);
np_radius.setMaxValue(100); // max value 100
np_radius.setMinValue(1); // min value 1
np_radius.setWrapSelectorWheel(false);
String[] displayedValues = new String[15];
int x=0;
for(int i=0; i<displayedValues.length; i++){
x = x+100;
displayedValues[i] = Integer.toString(x);
}
np_radius.setDisplayedValues(displayedValues);
np_radius.setOnValueChangedListener(new OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
// TODO Auto-generated method stub
}
});
dialog.show();
}
});
错误日志:
04-07 13:55:33.383: E/AndroidRuntime(20233): FATAL EXCEPTION: main
04-07 13:55:33.383: E/AndroidRuntime(20233): java.lang.ArrayIndexOutOfBoundsException: length=15; index=15
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.widget.NumberPicker.ensureCachedScrollSelectorValue(NumberPicker.java:1774)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.widget.NumberPicker.incrementSelectorIndices(NumberPicker.java:1739)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.widget.NumberPicker.scrollBy(NumberPicker.java:1008)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.widget.NumberPicker.computeScroll(NumberPicker.java:964)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.drawChild(ViewGroup.java:2729)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.View.getDisplayList(View.java:10475)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.View.getDisplayList(View.java:10475)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.View.getDisplayList(View.java:10475)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.View.getDisplayList(View.java:10475)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.View.draw(View.java:11041)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.widget.FrameLayout.draw(FrameLayout.java:450)
04-07 13:55:33.383: E/AndroidRuntime(20233): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2151)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.View.getDisplayList(View.java:10477)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:873)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewRootImpl.draw(ViewRootImpl.java:1914)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1638)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2452)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.os.Handler.dispatchMessage(Handler.java:99)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.os.Looper.loop(Looper.java:137)
04-07 13:55:33.383: E/AndroidRuntime(20233): at android.app.ActivityThread.main(ActivityThread.java:4464)
04-07 13:55:33.383: E/AndroidRuntime(20233): at java.lang.reflect.Method.invokeNative(Native Method)
04-07 13:55:33.383: E/AndroidRuntime(20233): at java.lang.reflect.Method.invoke(Method.java:511)
04-07 13:55:33.383: E/AndroidRuntime(20233): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822)
04-07 13:55:33.383: E/AndroidRuntime(20233): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:589)
04-07 13:55:33.383: E/AndroidRuntime(20233): at dalvik.system.NativeStart.main(Native Method)
有人知道怎么解决吗?
最佳答案
这不是错误。来自docs :
显示值数组的长度必须等于可选数字的范围,即等于 getMaxValue() - getMinValue() + 1
。
您的 maxValue
是 100,minValue
是 1。因此,只需改用它:
numberPicker.setMaxValue(14);
numberPicker.setMinValue(0);
你也可以看看here
关于java - 滚动值时 Numberpicker 抛出 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22911819/
我有一个使用 NumberPicker 的应用程序。由于该应用程序支持旧版本的 Android,其中没有 NumberPicker 小部件可用,我必须使用 external library . 在我的
该应用程序包含两个 Activity ,FirstScreen 和 SecondScreen。 FirstScreen 包含一个 NumberPicker np1 和一个按钮 toSecondScre
我有一个 NumberPicker 实例,它按预期工作,但我需要在滚动停止时或当用户仅按下增量/减量按钮时从中获取值。我应该得到的值显示在 TextView 中。 当滚动停止/变得空闲并正确显示时,我
我在 fragment 中使用 Android SDK 级别 13 下的 NumberPicker。工作正常,但每次 Activity 开始时,光标都会在数字后面闪烁。我怎样才能摆脱闪烁的光标,我不知
我正在尝试在数字选择器中添加数据列表。我正在使用的库:https://github.com/ShawnLin013/NumberPicker对于数字选择器。 这就是它在我的应用程序中的显示方式: 正如
我正在尝试在 Android 中创建一个数字选择器,但轮子只增加 1。我想增加 0.1。我在网上查了一下,但我发现了一个格式化的浮点数组禁用了轮子。请帮助并为语法感到抱歉,我正在学习。 最佳答案 您可
我的 NumberPicker 在 setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS) 模式下关闭了 setWrapSelectorWheel(fal
我在 AlertDialog 中有一个 NumberPicker 实例化如下:final NumberPicker np = new NumberPicker(PiattoActivity.this)
我正在尝试在自定义对话框中填充 NumberPicker。目前我正在使用一种方法,该方法使用 View 并扩展另一个布局(对话框),该方法应该填充 NumberPicker 但是当我在 onCreat
我使用了一个稍微修改过的 NumberPicker,当 Activity 开始时,默认值已经被选中。这很烦人,因为它会调出键盘或调出用于剪切/复制/粘贴的对话框。我确实指示键盘保持按下状态,但它仍处于
我在一个布局中有两个数字选择器,我正在使用一个 AlertDialog Box 的布局。但是,这两个数字选择器没有用于增加/减少值的滚动条。我也无法手动输入值。谁能帮我找出错误。 对话框.xml
我找到了 2 个内置的 NumberPickers: (来源:techbooster.org) 默认情况下,它是第一个,但是当我在 AndroidManifest.xml 中添加 android:th
你好, 我遇到了这个问题:我需要我的用户在 1 到 9 之间选择一个数字,但是 NumberPicker(如上所示)看起来非常丑陋,所有其他选择也好不到哪里去。您有其他选择吗? 非常感谢... 最佳答
这个问题在这里已经有了答案: How to create a negative NumberPicker (4 个答案) 关闭 6 年前。 我正在尝试为我的 NumberPicker 使用一组数字,
我有一个关于 Android NumberPicker 的问题。当用户在 NumberPicker 上执行 Fling 时,对于每一步,都会触发 OnValueChange 的监听器。我能否以这种方式
我正在使用三个 NumberPickers 在不同的日历系统中创建一个 DatePicker,并尝试将字体设置为 NumberPicker 控件。根据 this在 SO 上发帖,我查看了 number
我正在使用 NumberPicker。但默认情况下它处于垂直模式。我可以设置为水平模式吗? 这是我的 NumberPicker: 最佳答案 在找不到解决方案后,我决定自己实现。它是带选择轮的版本,不
我想帮助我开发一个带有从 firebase 获得的列表的数字选择器,此代码现在给我一个错误,如果我删除“setMaxValue 和 MinValue”,它只会给我带来一个值。 CBSList
在 activity_main.xml 中: 在 MainActivity.java 里面的 oncreate : NumberPicker numberPicker1 = (NumberPicke
我与 NumberPicker 安全问题对话。长文本被截断。如何解决这个问题? 这是对话框的布局内容 最佳答案 我遇到了同样的问题。我设法通过给 NumberPicker 一个大的 layou
我是一名优秀的程序员,十分优秀!