我的主要活动类中有一个数组列表(wl)。它正在 onCreate 中填充。我已经验证它正在填充。
还有一个 geturelistner 变量。手势监听器类扩展了我的主要活动类。当我从gesturelistner 类访问arraylist(wl) 时,它总是返回空。代码如下:
类FC.JAVA
public class FC extends ActionBarActivity
{
ArrayList<W> wl = new ArrayList<W>();
GestureDetectorCompat gDetector= new GestureDetectorCompat(this,new GestureListener());
...
protected void onCreate(Bundle savedInstanceState)
{...
wl.addAll(dbw.getalphaall("A",level));
Log.d("WL LEN MAIN",wl.size()+"");
...
}
View.OnTouchListener gListener = new View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
if (gDetector.onTouchEvent(event))
return true;
return false;
}
};
}
类手势监听器.JAVA
class GestureListener extends FC implements GestureDetector.OnDoubleTapListener, OnGestureListener
{
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{ ...
Log.d("WL LEN GL", super.wl.size()+"");
...
return false;
}
当我运行我的代码时
WL LEN MAIN 返回 386
WL LEN GL 返回 0
记录猫错误:
09-29 08:57:44.694: E/InputEventReceiver(2766): Exception dispatching input event.
09-29 08:57:44.694: E/MessageQueue-JNI(2766): Exception in MessageQueue callback: handleReceiveCallback
09-29 08:57:44.764: E/MessageQueue-JNI(2766): java.lang.ArrayIndexOutOfBoundsException: length=0; index=-1