我遇到了这个错误:
09-13 18:20:50.183: ERROR/AndroidRuntime(300): java.lang.ArrayIndexOutOfBoundsException
09-13 18:20:50.183: ERROR/AndroidRuntime(300): at android.view.MotionEvent.getY(MotionEvent.java:792)
09-13 18:20:50.183: ERROR/AndroidRuntime(300): at android.widget.AbsListView.onTouchEvent(AbsListView.java:2040)
这里有一个问题: http://code.google.com/p/android/issues/detail?id=10238#c6
当我尝试将一个ListView的MotionEvent表单传递给另一个时,我收到此错误。但是,这仅在一个ListView具有onClickListeners的视图时发生。
public boolean onTouch(View view, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN && !requestedFocus) {
view.requestFocus();
requestedFocus = true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
requestedFocus = false;
}
if(view == leftListView && view.isFocused()) {
rightListView.dispatchTouchEvent(event);
} else if(view == rightListView && view.isFocused()) {
leftListView.dispatchTouchEvent(event);
}
return false;
}
使用上面的代码,一切正常,直到rightListView
动态加载其上有onClickListeners的视图。然后,此视图传递给leftListView
的任何MotionEvent都会导致ArrayIndexOutOfBoundsException。从leftListView
到rightListView
的活动尽管如此。
这似乎是因为AbsListView的mActivePointerId == INVALID_POINTER,例如, -1。我尝试使用反射来改变这个值......但它没有帮助。
所以,我的问题是,有没有解决这个问题?
我的目标是同步两个ListView的滚动,所以如果另一个可行,我愿意废弃这个方法。我尝试过使用ScrollListeners但它们会导致其他问题。
提前致谢!
答案 0 :(得分:0)
我认为你有一个数组,例如这个数组的大小为9,你使用索引[10]。