私の能力を少し超えたプログラムを作成しようとしています。プログラムはGPSデータを取得し、グラフィックスの素晴らしいページに表示することになっています。私は必要なリスナインタフェースを実装することで、GPSデータにうまくアクセスできます。 SurfaceViewを採用した洗練されたプログラム構造を使って素敵なグラフィックスを表示できます。しかし、私はこれらの2つの機能(受信データとグラフィックス)を引き離そうとすると、物事が崩れます。内部クラスにデータを取得する際に問題が発生しました
プログラムのグラフィック構造は概略的に、である:
活性が、数gpsStatus /ロケーションインターフェース
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グラフィックスチュートリアルからこの構造を得ました。グラフィックスは別のスレッドに描画されます。私はこれから非常に滑らかなグラフィックスを得ることができました。
SurfaceViewを拡張するクラス "Panel"は、アクティビティのonCreateで次のように作成されます。setContentView(new Panel(this));内部クラスはインスタンスとして作成されます。つまり、PanelのコンストラクタによってThread thread = new Thread()です。
GPSチップからの私のデータは、アクティビティのメソッドを介して入力されます。問題は、どのようにしてこれらのオブジェクトを "Panel"の内側とonDraw()に入れるのですか? onDraw()内から、アクティビティ内のオブジェクト(私のGPSデータ)にアクセスできません。
SurfaceViewをインスタンスとして作成しようとしましたが、SurfaceViewを移動して別のクラスにしました(まだスレッドが入っています)。私はPanel内のインターフェースを実装しようとしました。これらは常にクラッシュし、私は見逃すことのできないデバッグデータを持っています。
ご迷惑をおかけして申し訳ございません。
これらの解読不能なデバッグメッセージが実際に役立つかもしれません。投稿できますか? – espinchi