Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 旋转器上的索引自动边界?_Android_Spinner - Fatal编程技术网

Android 旋转器上的索引自动边界?

Android 旋转器上的索引自动边界?,android,spinner,Android,Spinner,我对堆栈跟踪的解释有问题。。问题是我的软件包中没有课程,所以我很难知道发生了什么。。当我暂停跟踪时,我认为这是关于适配器和微调器的,但在那个页面上我有6个微调器,我调试了它们,没有发现任何奇怪的东西(比如SelectedEmposition或其他东西) 也许有人也有类似的问题? 这是追踪。如果你需要一些代码,告诉我 Uncaught handler: thread main exiting due to uncaught exception java.lang.IndexOutO

我对堆栈跟踪的解释有问题。。问题是我的软件包中没有课程,所以我很难知道发生了什么。。当我暂停跟踪时,我认为这是关于适配器和微调器的,但在那个页面上我有6个微调器,我调试了它们,没有发现任何奇怪的东西(比如SelectedEmposition或其他东西)

也许有人也有类似的问题? 这是追踪。如果你需要一些代码,告诉我

    Uncaught handler: thread main exiting due to uncaught exception
    java.lang.IndexOutOfBoundsException
     at java.util.Arrays$ArrayList.get(Arrays.java:72)
     at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:298)
     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:351)
     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
     at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:198)
     at android.view.View.measure(View.java:7987)
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888)
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:350)
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
     at android.view.View.measure(View.java:7987)
     at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:893)
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
     at android.widget.ScrollView.onMeasure(ScrollView.java:276)
     at android.view.View.measure(View.java:7987)
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888)
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:350)
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
     at android.view.View.measure(View.java:7987)
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
     at android.view.View.measure(View.java:7987)
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023)
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
     at android.view.View.measure(View.java:7987)
     at android.view.ViewRoot.performTraversals(ViewRoot.java:763)
     at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:123)
     at android.app.ActivityThread.main(ActivityThread.java:4363)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:521)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)
     at dalvik.system.NativeStart.main(Native Method)

我不知道该怎么办。

查看是否对索引可能大于微调器适配器大小的任何微调器调用了setSelection()。e、 g.如果您的微调器有两个项目,并且如果调用setSelection(2),这将导致IndexOutOfBoundsException异常。

要查找出现问题的微调器,请执行以下操作:

  • 制作页面的备份副本
  • 删除6个微调器中的5个
  • 测试页面
  • 重复此操作,一次只保留一个微调器,直到完成对页面上每个微调器的测试

那就是我要做的。我希望这会有所帮助。

进一步说明@FrancescoR的评论,这段代码可能会帮助您在尝试追踪错误呼叫时避免代码崩溃。我不得不回答这个问题,因为在评论中添加代码是非常讨厌的

private void spinnerSetSelectionChecked(Spinner spin, int index) {
    spinnerSetSelectionChecked(spin, index, true);
}
private void spinnerSetSelectionChecked(Spinner spin, int index, boolean animate) {
    final int count = spin.getAdapter().getCount();
    if( (count > 0) && (index < count) ) {
        spin.setSelection(index, animate);
    }
    else { // do nothing
    }
}
private void SpinnerSetSelection选中(Spinner spin,int index){
喷丝头选择已检查(旋转、分度、正确);
}
私有空心微调器SelectionChecked(微调器旋转、整数索引、布尔动画){
最终整数计数=spin.getAdapter().getCount();
如果((计数>0)和&(索引<计数)){
旋转。设置选择(索引、动画);
}
否则{//什么也不做
}
}

我想看看代码。我们确实需要更多的代码来了解这一点,但至少你给了它一次机会哈哈:)我也有同样的问题,是的,这是一个错误的选择()。问题是,异常不是来自您的代码,而是来自android的线程,因此很难找到问题所在。祝你好运事实上,这就是我发现的。将旋转设置为空检查!