Android 关于tabshost下活动组的问题
我正在开发一个应用程序,它在tabhost中有一个活动组,所以我在同一个选项卡中有一个活动工作堆栈 如果我在另一个活动中启动搜索界面正常工作,当我尝试搜索界面并在该选项卡内时,问题就会出现。” 此外,如果我尝试使用“onClick”选项从布局xml执行方法,应用程序将崩溃Android 关于tabshost下活动组的问题,android,android-tabhost,Android,Android Tabhost,我正在开发一个应用程序,它在tabhost中有一个活动组,所以我在同一个选项卡中有一个活动工作堆栈 如果我在另一个活动中启动搜索界面正常工作,当我尝试搜索界面并在该选项卡内时,问题就会出现。” 此外,如果我尝试使用“onClick”选项从布局xml执行方法,应用程序将崩溃 01-06 10:09:24.533: E/AndroidRuntime(1404): Caused by: android.view.WindowManager$BadTokenException: Unable to ad
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);
有一个嵌套的类可能会有些问题吗
问候我想你在用
setContentView(R.layout.your_id);
这会导致ActivityGroup中出现上下文问题
试着这样使用它:
View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.your_id, null);
setContentView(viewToLoad);
作为一个简短的提示:您可能应该切换到片段,因为ActivityGroup已经被弃用了。它们会带来很多麻烦…
View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.your_id, null);
setContentView(viewToLoad);
删除xml文件中的onClick方法,并在java代码中的按钮上放置一个onClick侦听器。这样就可以了;)最后有很多问题,我不清楚您在寻找什么。请澄清您的问题。是的,当涉及到Tabhost时,在显示对话框时,您需要使用getParent()而不是这样,因为对话框窗口会使整个应用程序膨胀。