我想要一个片段的地图视图。
看起来很简单…我还是不明白!
启动应用程序时出现此错误:
java.lang.NullPointerException:尝试调用接口方法
空对象引用上的“void maps.ad.y.v()”
我有一个带有viewpager:mainActivity的活动

public class MainActivity extends AppCompatActivity {

  private SectionsPagerAdapter mSectionsPagerAdapter;
  private ViewPager mViewPager;

  //...onCreate(), etc

  public class SectionsPagerAdapter extends FragmentPagerAdapter {
    //...
    @Override
    public Fragment getItem(int position) {
      if (position == 0) {

        return ClassicFragment.newInstance(position + 1);
        // no problem with this one

      } else if (position == 1) {

        return MyMapFragment.newInstance(position + 1);
        // here is my problem

      }
    }
  }
}

还有2个碎片。(一个简单,一个有地图)
我无法正确制作的片段:MyMapFragment
public class MyMapFragment extends SupportMapFragment implements OnMapReadyCallback {

    View rootView;
    private MapView mapView;
    private GoogleMap googleMap;

    public MyMapFragment() {
    }

    public static MyMapFragment newInstance(int sectionNumber) {
        MyMapFragment fragment = new MyMapFragment();
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_map, container, false);
        return rootView;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        mapView = (MapView) rootView.findViewById(R.id.map);
        mapView.onCreate(savedInstanceState);
        mapView.onResume();
        mapView.getMapAsync(this);//when you already implement OnMapReadyCallback in your fragment
    }

    @Override
    public void onMapReady(GoogleMap map) {
        googleMap = map;
    }
}

最后,这里是MyMapFragment的XML(fragment_map.xml)。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.gms.maps.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

知道我做错了什么吗?

最佳答案

我找到了两个解决方案:
解决方案1:
将supportMapFragment更改为Fragment。
解决方案二:(我选了这个)
在MyMapFragment中添加此调用。

super.onCreateView(inflater, container, savedInstanceState);

07-26 09:32