2011-01-17 2 views
0

Этот вопрос касается концепции того, что я пытаюсь кодировать.Как получить доступ к диалоговому окну?

У меня есть активность «общественный класс Board расширяет активность {» , который имеет «setContentView (myBoard)», где myBoard является экземпляром «класса NewBoard расширяет View реализует OnTouchListener {» NewBoard рисует графики с OnDraw, а также рисует графические кнопки. Щелчок по кнопке «Решить» делает вызов другому классу «открытый класс SKO {», который не имеет визуальных компонентов и выполняет расчет, результаты которого перерисовываются графическим представлением.

Все это работает хорошо.

Теперь я хочу вызвать диалог из более графически нарисованных кнопок в представлении NewBoard.

В «топе» класс - совет, у меня есть подходящий код в «защищаемого Dialog onCreateDialog (Int ID) {» Я знаю, что этот код хорошо, потому что если добавить ShowDialog (INT), (Alertdialog с кнопка отмены) в onCreate of Board, затем при запуске класса Board открывается диалоговое окно, и в этом случае моя графика работает под ним.

Моя проблема * ** *

что я не могу найти способ вызова ShowDialog (INT) в рамках Совета от моего графического представления (NewBoard).

Я попытался добавить "защищенный диалог onCreateDialog (int id) {" к моему графическому представлению (NewBoard), но я считаю, что он может быть добавлен только к активности. Я был бы очень признателен за некоторые советы.

+0

Мне сложно понять ваш вопрос, но почему бы не сохранить ссылку на ваш диалог после того, как он будет создан из Builder? – bgs

ответ

0

Я бы предположил, что вы определяете интерфейс Listener, такой как NewBoardListener (не большое имя, но достаточно хорошее для примера). Ваш класс Board может зарегистрироваться в вашем представлении NewBoard как NewBoardListener. Предположим, что событие кнопки в вашем представлении NewBoard имеет какое-то отношение к «View Status», тогда ваш интерфейс NewBoardListener может определить метод, называемый как onViewStatus(). Когда пользователь нажимает кнопку на представлении NewBoard, вы делаете обратный вызов для своего newBoardListener.onViewStatus(). Затем в классе Board, который реализует интерфейс NewBoardListener, в вашем методе onViewStatus вы вызываете showDialog (int).

+0

У меня сейчас работает. Большое спасибо за ваш вклад. – DMW

Смежные вопросы