如何解决android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌android.app.LocalActivityManager

时间:2014-08-15 01:54:48

标签: android android-activity dialog android-viewpager

我使用ViewPager LocalActivityManager加载Activity。当我想在Activitys中显示Dialog时.Error显示;似乎对话框中使用的上下文不适用,如何获得正确的上下文;

vp = (MyViewPager) recommendView.findViewById(R.id.vp);
views = new ArrayList<View>();
Intent i1 = new Intent(this, Activity1.class);
Intent i2 = new Intent(this, Activity2.class);
Intent i3 = new Intent(this, Activity3.class);
Intent i4 = new Intent(this, Activity4.class);
Intent i5 = new Intent(this, Activity5.class);
Intent i6 = new Intent(this, Activity6.class);
Intent i7 = new Intent(this, Activity7.class);
views.add(getView("1", i1));
views.add(getView("2", i2));
views.add(getView("3", i3));
views.add(getView("4", i4));
views.add(getView("5", i5));
views.add(getView("6", i6));
views.add(getView("7", i7));
adapter = new MyPageAdapter(views);
vp.setAdapter(adapter);

//getView Code

private View getView(String id, Intent intent) {
    return manager.startActivity(id, intent).getDecorView();
}
//show dialog Code

bt2.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Dialog dialog=new Dialog(Activity7.this);
            dialog.setTitle("title");
            dialog.show();
        }
});

1 个答案:

答案 0 :(得分:-1)

我不知道你写得对吗? 但从问题来看,我认为你可以尝试: 在内部活动中定义接口,例如;

public interface DealDialog{
   public interface showDialog();
}

然后,在外部实现此接口(TabHost)。

你可以尝试一下。

抱歉,我的英语太糟糕了,抱歉。当你不明白时,你可以问我。