tabshost下的活动组问题

时间:2012-01-06 18:00:53

标签: android android-tabhost

我正在开发一个在tabhost中有一个活动组的应用程序。所以我在同一个选项卡中处理了一堆活动。

当我尝试搜索界面并在此选项卡内部并且没有任何反应时,如果我在另一个活动中启动搜索界面正常工作,则会出现问题“。

此外,如果我尝试使用“onClick”选项从布局xml执行方法,应用程序崩溃

01-06 10:09:24.533: E/AndroidRuntime(1404): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@40538fa0 is not valid; is your activity running?
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.view.ViewRoot.setView(ViewRoot.java:562)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.view.Window$LocalWindowManager.addView(Window.java:433)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.app.Dialog.show(Dialog.java:265)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.app.DatePickerDialog.show(DatePickerDialog.java:132)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.app.Activity.showDialog(Activity.java:2727)
01-06 10:09:24.533: E/AndroidRuntime(1404):     at android.app.Activity.showDialog(Activity.java:2685)

我还注意到,如果我打算在此ActivityGroup崩溃中显示一个对话框,但我重叠此问题,获取父活动的上下文以显示它。

m_ProgressDialog = ProgressDialog.show(getParent(), "Please wait", "Downloading info", true,false);

代替

    m_ProgressDialog = ProgressDialog.show(this, "Please wait", "Downloading info", true,false);

可能有嵌套类吗?

问候

2 个答案:

答案 0 :(得分:1)

我猜你正在使用

setContentView(R.layout.your_id);

导致ActivityGroup中的COntext问题。

尝试以这种方式使用它:

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.your_id, null);
setContentView(viewToLoad);

简而言之:您应该切换到片段,因为不推荐使用ActivityGroups。他们遇到了很多麻烦......

答案 1 :(得分:0)

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.your_id, null);
setContentView(viewToLoad);

删除xml文件中的onClick方法,并在java代码中的按钮上放置onClickListener。这将完成工作;)