无法将数据导入内部类

时间:2010-11-19 20:20:30

标签: android graphics 2d

我正在尝试编写一个超出我能力范围的程序。该程序应该检索GPS数据并将其显示在一个漂亮的图形页面上。通过实现必要的监听接口,我可以很好地访问GPS数据。我可以使用采用SurfaceView的复杂程序结构显示漂亮的图形。但是当我试图将这两种功能(输入数据和图形)拉到一起时,事情就会崩溃。

程序的图形结构以示意图形式显示:

Activity实现了几个gpsStatus / Location接口

Anonymous inner class Panel extends SurfaceView  implements SurfaceHolder.Callback
        onDraw() which does the drawing

        inner (instance) class Thread
            run() which does the canvas locking and calls onDraw()

我希望这是有道理的。我从Droidnova网站获得了这个结构,2D图形教程。图形在单独的线程中绘制。我已经能够从中获得非常漂亮的平滑图形。

类“Panel”,扩展SurfaceView的类是在Activity的onCreate中创建的,如下所示:setContentView(new Panel(this));内部类被创建为一个实例,即Panel的构造函数的Thread thread = new Thread()。

来自GPS芯片的数据来自活动中的方法。问题是,我如何在“Panel”和onDraw()中获取这些对象?在onDraw()中,Activity(我的GPS数据)中的对象无法访问。

我已经尝试将SurfaceView创建为一个实例,我尝试将SurfaceView移出,因此它是一个单独的类(线程仍然在里面)。我已经尝试在面板中实现接口这些总是崩溃,调试数据我无法理解。

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:0)

我认为如果你将GPS数据包装到类foo中,并将对foo实例的引用传递给Panel上的构造函数,那么你应该拥有所需的一切。

答案 1 :(得分:0)

如果内部类在Activity类中声明(侦听gps数据),那么内部类应该能够访问Activity类的成员变量。 它不是很好,但它应该有效。