尝试写入字段' android.view.ViewParent android.view.View.mParent'在null对象引用上

时间:2018-03-01 04:48:04

标签: android nullpointerexception android-viewgroup

我有一个以singleTask模式启动的活动(比如A)。我在此活动中创建了一个弹出窗口,并将其添加到活动A的父视图中。现在我从其他地方启动了活动A,我收到onNewIntent()调用,在那里我重新初始化了新视图。但是,在重新初始化A之前,如何销毁此弹出窗口?

这是我的代码: 这就是我创建弹出窗口的方式。

    final ViewGroup rootView = (ViewGroup) getWindow().getDecorView().getRootView();
        RelativeLayout popup = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.popup_r,null);
popupView = popup;
rootView.addView(popup);

这是我的onNewIntent方法

@Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        if (popupView != null)
        {
            ((ViewGroup)popupView.getParent()).removeView(popupView);
            popupView = null;
        }        

        setIntent(intent);
        setContentView(R.layout.activity_view);
        reinitView();
    }

但是这让我崩溃了,这里是logcat:

  

java.lang.NullPointerException:尝试写入字段' android.view.ViewParent android.view.View.mParent'在空对象引用上

在第((ViewGroup)popupView.getParent()).removeView(popupView);

如何在使用新意图重新初始化活动之前删除popupview?

0 个答案:

没有答案