2011-01-17 4 views
0

この質問は、私がコードしようとしていることの概念に関するものです。ビューからダイアログにアクセスする方法は?

Iアクティビティ myBoardは のインスタンスである「setContentView(myBoard)」を NewBoardもonDrawとを有するグラフィックスを描画する「クラスNewBoardビューがOnTouchListenerが{実装延び」を有する 「パブリッククラスボード活性を{延び」を有しますグラフィカルなボタンを描画します。 "Solve"と呼ばれるボタンをクリックすると、別のクラス "public class SKO {"に視覚的な要素がなく、計算が実行され、その結果がグラフィック表示によって再描画されます。

これはすべてうまくいきます。

これで、NewBoardビュー上にグラフィカルに描画されたボタンからDialogを呼び出すことにしました。 「トップ」クラスでは

を - ボード、私は「{保護されたダイアログonCreateDialog(int型のID)」 は、私は私がShowDialogを(int型)、(Alertdialogを追加するためならば、このコードは良いです で、適切なコードを知っていますキャンセルボタン)をボードのonCreateに送信し、クラスボードを実行するとダイアログが表示され、キャンセルするとグラフィックが下に表示されます。

私の問題は、私は私のグラフィックスビュー(NewBoard)からボード内にShowDialog(int)を呼び出すための方法を見つけることができません** **

です。

私はグラフィックスビュー(NewBoard)に "protected Dialog onCreateDialog(int id){"を追加しようとしましたが、これはアクティビティにのみ追加できると思います。 私は非常にいくつかのアドバイスをいただければ幸いです。

+0

私はあなたの質問を理解するのに苦労しますが、なぜそれがビルダーから作成されるとダイアログへの参照を保存していませんか? – bgs

答えて

0

私は、NewBoardListenerのようなListenerインターフェイスを定義することをお勧めします(偉大な名前ではありませんが、例としては十分です)。 Boardクラスは、NewBoardListenerとしてNewBoardビューに登録できます。 NewBoardビューのボタンイベントが "View Status"と関係があると仮定しましょう。そして、あなたのNewBoardListenerインターフェースは、onViewStatus()のようなメソッドを定義できます。ユーザーがNewBoardビューのボタンをタップすると、newBoardListener.onViewStatus()へのコールバックを行います。次に、NewBoardListenerインターフェイスを実装するBoardクラスで、onViewStatusメソッドでshowDialog(int)を呼び出します。

+0

私は今働いている。あなたのご意見ありがとうございました。 – DMW

関連する問題