gpt4 book ai didi

java - getsupportfragmentmanager().findfragmentbyid(r.id.map) 返回 null 谷歌地图

转载 作者:行者123 更新时间:2023-12-02 08:46:16 25 4
gpt4 key购买 nike

我尝试在我的 MainActivity 上使用谷歌地图功能,我返回了这个空指针:getsupportfragmentmanager().findfragmentbyid(r.id.map); ==>返回空

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapApi);

mapfragment 将为 null,当我使用 getMapAsync(this); 调用它时应用程序在启动之前关闭

 mapFragment.getMapAsync(this); // null pointer variable call getMapAsync 

content_main.xml

    <LinearLayout
android:layout_width="match_parent"
android:layout_height="216dp"
android:orientation="horizontal">

<fragment
android:id="@+id/mapApi"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent">

</fragment>
</LinearLayout>

MainActivity 内的 onCreate :

public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener , OnMapReadyCallback {



private GoogleMap map;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main); didn't work
setContentView(R.layout.content_main); // worked, now i haven't null pointer
System.out.println("************************ mapApi:"+R.id.mapApi);

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapApi);


System.out.println("************************ mapFragment:"+mapFragment);

if (mapFragment != null) {

mapFragment.getMapAsync(this);
}
}

@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
LatLng BordjMenaielGare = new LatLng(36.753162, 3.717716);
LatLng Blida = new LatLng(36.769038, 3.057451);
map.addMarker(new MarkerOptions().position(BordjMenaielGare).title("Gare Bordj Menaiel "));
map.addMarker(new MarkerOptions().position(Blida).title("Gare Agha"));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(BordjMenaielGare, 10));
}

}

这是文件:

map fragment 位于 content_main.xml 中,我将其包含在 app_bar_main.xml 中,app_bar_main 包含在 Activity_main.xml 中,我从 MainActivity 调用 map

enter image description here

我在 StackOverflow 中搜索了很多,但没有一个解决方案对我的情况有效

有人可以帮我解决这个问题吗?

最佳答案

您需要调用:

// add this (supplying the layout for your activity)
setContentView(R.layout.activity);

调用 super.onCreate(savedInstanceState);

关于java - getsupportfragmentmanager().findfragmentbyid(r.id.map) 返回 null 谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61065465/

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