0

我有 3 节课,其中一节课是活动。内部活动 oncreate

Camera camera = Camera.open();    
MovementDetector detector = new MovementDetector(this, camera);
            if(detector == null)Log.d(null, "detector null in activity");
            MovementResult result = new MovementResult(this, detector);

内部运动结果

public class MovementResult extends SurfaceView implements SurfaceHolder.Callback, Runnable {

        SurfaceHolder holder;
        MovementDetector detector;

        public MovementResult(Context context, MovementDetector detectorview) {
            super(context);
            holder = getHolder();
            holder.addCallback(this);
            detectorview = detector;
            if(detector == null)Log.d(null, "detector null in constructor");
            if(detectorview == null)Log.d(null, "detectorview null in constructor");
        }

经过漫长而痛苦的搜索(因为我没有检查,因为我没有看到原因......)在类 MovementResult 检测器中结果为空。两个日志都显示在 logcat 中,您可以在构造函数中看到,但是活动中的日志不显示。

所以我在一个不为空的活动中有一个对象。然后我将它传递给另一个构造函数,它在那里变为空。可能是什么原因?

4

1 回答 1

2

检测器视图是传递的参数,检测器是空成员。

似乎您想将检测器设置为检测器视图,但您将(通过的)检测器视图设置为(空)检测器,这肯定不是您想要的。

于 2013-07-08T18:49:54.600 回答