Android 将数据放入内部类时遇到问题
我正试图编写一个程序,这个程序超出了我的能力。这个程序应该能够检索GPS数据并将其显示在一个漂亮的图形页面上。通过实现必要的侦听器接口,我可以很好地访问GPS数据。我可以使用使用SurfaceView的复杂程序结构显示漂亮的图形。但是,当我试图将这两个功能(传入数据和图形)拉到一起时,事情就分崩离析了 程序的图形结构为示意图形式: 活动实现多个gpsStatus/Location接口Android 将数据放入内部类时遇到问题,android,graphics,2d,Android,Graphics,2d,我正试图编写一个程序,这个程序超出了我的能力。这个程序应该能够检索GPS数据并将其显示在一个漂亮的图形页面上。通过实现必要的侦听器接口,我可以很好地访问GPS数据。我可以使用使用SurfaceView的复杂程序结构显示漂亮的图形。但是,当我试图将这两个功能(传入数据和图形)拉到一起时,事情就分崩离析了 程序的图形结构为示意图形式: 活动实现多个gpsStatus/Location接口 Anonymous inner class Panel extends SurfaceView impleme
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的类,是在活动的onCreate中创建的,如下所示:setContentView(newpanel(this));内部类由面板的构造函数创建为实例,即Thread Thread=new Thread()
我的GPS芯片数据通过活动中的方法输入。问题是,如何将这些对象放入“Panel”中并放入onDraw()?在onDraw()中,无法访问活动中的对象(我的GPS数据)
我尝试将SurfaceView创建为一个实例,我尝试将SurfaceView移出,使其成为一个单独的类(线程仍在其中)。我尝试在面板中实现接口,这些接口总是会崩溃,调试数据我无法理解
非常感谢您的帮助。我认为,如果您将GPS数据包装到一个类foo中,并将对foo实例的引用传递到面板上的构造函数中,您应该拥有所需的一切。如果内部类在Activity类中声明(侦听GPS数据),然后内部类应该能够访问Activity类的成员变量。
它不是很面向对象,但应该可以工作。那些无法理解的调试消息可能会有帮助,你能发布它们吗?非常感谢。我想这是很明显的…我不是特别有经验,我没有想到你可以通过这种方式重载一个构造函数(即,添加到你提供给它的参数中)…我会试试。这似乎是可行的!我创建了一个类gpsDataHolder,在外部活动(gps回调所在的位置)中有holder.setData(),在内部SurfaceView的onDraw中有holder.getData(),并且能够将鸿沟“桥接”到匿名内部类中。再次感谢您的帮助。该面板(内部绘图类)在我使用的模板中是匿名的,它是由setContentView(new Panel(this))在活动中创建的。我尝试了Panel myPanel=new Panel和setContentView(myPanel(this)),但我确信它也崩溃了。