AlertDialog抛出运行时错误

时间:2017-03-04 15:34:48

标签: android runtime alertdialog android-windowmanager

最近我通过TabHost创建了内部选项卡 - TabActivity3的活动现在是TabActivity4,当测试一切看起来不错时。但是当单击其中一个按钮(调用AlertDialog)时,它会抛出此错误,请记住,如果代码位于TabActivity3,这很好,但是当移动到内部Tab(TabActivity4)时,会发生这种情况。

android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@2f93937 is not valid; is your activity running?
                                                             at android.view.ViewRootImpl.setView(ViewRootImpl.java:849)
                                                             at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337)
                                                             at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
                                                             at android.app.Dialog.show(Dialog.java:350)
                                                             at android.app.Activity.showDialog(Activity.java:3782)
                                                             at android.app.Activity.showDialog(Activity.java:3731)
                                                             at com.example.tabdemo.Tab4Activity$2.onClick(Tab4Activity.java:100)
                                                             at android.view.View.performClick(View.java:5697)
                                                             at android.widget.TextView.performClick(TextView.java:10826)
                                                             at android.view.View$PerformClick.run(View.java:22526)
                                                             at android.os.Handler.handleCallback(Handler.java:739)
                                                             at android.os.Handler.dispatchMessage(Handler.java:95)
                                                             at android.os.Looper.loop(Looper.java:158)
                                                             at android.app.ActivityThread.main(ActivityThread.java:7224)
                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

代码

public class Tab4Activity extends Activity
{
  protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab4);

         eta =(Button)findViewById(R.id.etaButton);

        eta.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                showDialog(TIME_DIALOG_ID);

            }

        });
}
}

我认为答案可能在于getActivity()方法 - 但不确定如何实现。

0 个答案:

没有答案