代码之家  ›  专栏  ›  技术社区  ›  Michael Grinnell

xamarin android c viewstub只工作一次,然后获取空指针

  •  1
  • Michael Grinnell  · 技术社区  · 8 年前

    我正试图使用一个viewstub来设置我的视图,它第一次运行良好,但是如果我再次调用这个方法,我会得到一个空指针异常,你知道为什么会发生这种情况吗?

    这是我的代码,我第一次调用它,它运行良好。

                ViewStub stub = FindViewById<ViewStub>(Resource.Id.stub);
                stub.LayoutResource = Resource.Layout.overview;
                stub.Inflate();
    

    然后当我尝试用不同的布局再次执行相同的操作时,会得到一个空指针异常

                ViewStub stub = FindViewById<ViewStub>(Resource.Id.stub);
                stub.LayoutResource = Resource.Layout.product_view;
                stub.Inflate();
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Billy Liu - MSFT    8 年前

    根据 official documentation :

    当一个viewstub可见时,或者当调用inflat()时,布局资源就会膨胀。然后,viewstub在其父视图中用一个或多个视图替换自己。

    你的 ViewStub 替换为 Resource.Layout.overview 你打电话之后 stub.Inflate() . 你可以用 FindViewById() 在您的 overview 但不能得到 视图存根 再。