片段应该是静态的,以便它们可以由系统重新实例化,而匿名类不是静态的

时间:2017-03-27 02:56:56

标签: android google-maps maps supportmapfragment

我在片段中启动了supportMapFragment。

这就是我创建它的方式。

 @Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);

    mapFragment = new SupportMapFragment()
    {
        @Override
        public void onActivity(Bundle bundle)
        {
            super.onActivity(bundle);
            mapFragment.getMapAsync(HomeFragment.this);
        }

    };
   getChildFragmentManager().beginTransaction().replace(R.layout.container, mapFragment).commit();
}

我的问题是,每当我创建一个构建时,创建都会失败,说#34; Fragments应该是静态的,这样它们就可以被系统重新实例化,而匿名类不是静态的"

我尝试将变量设置为静态,但仍然出现错误。

请帮忙。

2 个答案:

答案 0 :(得分:1)

static class MySupportMapFragment extends SupportMapFragment{
    XXX mMapFragment;
    MySupportMapFragment(XXX mapFragment){
        super();
        mMapFragment = mapFragment;
    }
    @Override
    public void onActivity(Bundle bundle)
    {
        super.onActivity(bundle);
        mMapFragment.getMapAsync(HomeFragment.this);
    }

};

答案 1 :(得分:-1)

在app gradle中添加此内容

lintOptions {
    checkReleaseBuilds false
    abortOnError false
}