Android почему TabActivity с активностью сбой при открытии диалога - PullRequest
1 голос
/ 12 июля 2011

Я вижу, что есть 10 ответов на этот вопрос, и я прочитал их все но не могу заставить это работать.

Я перемещаю свои действия в эту TabGroup, и у меня есть 3 действия в группе вкладок, и я получил помощь, делая это отсюда: Несколько действий Android в TabActivity

При открытии Custom Dialog я получаю эту ошибку:

07-12 10: 07: 56.985: ОШИБКА / AndroidRuntime (9532): android.view.WindowManager $ BadTokenException: невозможно добавить окно - токен android.app.LocalActivityManager$LocalActivityRecord@462d96f0 недействителен; ваша деятельность работает?

Я знаю, что эта ошибка говорит о плохом контексте.
На ColorPickerView (ниже), который не работает, я отлаживаю и вижу, что конструктор выполняет свою работу, но как только конструктор заканчивает работу, он вылетает.

Дело в том, что у меня есть 3 аналогичные ошибки из двух других действий: один CheckBox и два Spinner's.
Я мог бы легко это исправить, изменив Контекст соответствующим образом.

Это более сложно, и стек просмотра выглядит следующим образом:

TabGroup  
.......TabHost (public class FileEditMainActivity extends Activity)    
...............ImageView (public class FileEditImageView extends ImageView )      
........................Dialog (public class ColorPickDialog extends Dialog )  
..............................View (private class ColorPickerView extends View  )

Независимо от того, как я изменяю Контекст, система говорит мне, что Контекст не жив.
ColorPickerView всегда падает ..

Должен также сказать, что это работает, если я не использую TabGroup. Когда я помещаю FileEditMainActivit в TabGroup, что-то не так с контекстом.
Кто-нибудь имеет представление о том, что делать?

1 Ответ

6 голосов
/ 14 июля 2011

Так как все находится внутри ActivityGroup, я должен делать как

GetParent (). GetParent ()

Это может выглядеть брутально, но это сработало, и для моего уровня опыта я считаю это победой:)

EDIT

строка getparent().getParent() будет параметром контекста, например:

final ProgressDialog dialog = ProgressDialog.show(this.getParent().getParent(), null, "Prcocessing", true, true);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...