gpt4 book ai didi

android - ViewPager NullPointer 中的 MapFragment : 'void maps.ad.y.v()' on a null object reference

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:58 27 4
gpt4 key购买 nike

我想在 Fragment 中有一个 MapView。看起来很简单……我还是不明白!

启动应用程序时出现此错误:

java.lang.NullPointerException: Attempt to invoke interface method 'void maps.ad.y.v()' on a null object reference

我有一个 ViewPager Activity :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个 fragment 。 (一个简单的,一个有 map 的)我无法正确制作的 fragment :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>

知道我做错了什么吗?

最佳答案

我找到了 2 个解决方案:

解决方案一:

SupportMapFragment 更改为 Fragment

方案二:(我选择了这个)

在 MyMapFragment 中添加此调用。

super.onCreateView(inflater, container, savedInstanceState);

关于android - ViewPager NullPointer 中的 MapFragment : 'void maps.ad.y.v()' on a null object reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41403866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com