Проблема с гугл картами и получить дочерний менеджер фрагментов
Я постоянно получаю сообщение об ошибке для фрагмента карты поддержки, я новичок в android и java, поэтому у меня нет ответов, которые он говорит ';' ожидается, но однажды вставленный перед менеджером получения дочернего фрагмента, он делает фрагмент карты поддержки недоступным, и я получаю сообщение об ошибке по всей строке.
вот мой класс
package com.example.hp_user.shoutfinal28;
import android.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
public class FragmentShouts_Maps extends Fragment implements OnMapReadyCallback {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Get the view from fragment shouts.xml
View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
return view;
SupportMapFragment fragment = SupportMapFragment.newInstance(); getChildFragmentManager().findFragmentById(R.id.maps);
fragment.getMapAsync(this);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onMapReady (GoogleMap googleMap) {
}
}
вот мой xml файл
<RelativeLayout 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" >
<fragment android:id="@+id/maps"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.example.hp_user.shoutfinal28.FragmentShouts_Maps"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_alignParentEnd="true">
</fragment>
</RelativeLayout>
1 ответ
Заменить этот код:
View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
return view;
SupportMapFragment fragment = SupportMapFragment.newInstance(); getChildFragmentManager().findFragmentById(R.id.maps);
fragment.getMapAsync(this);
с этим:
View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
SupportMapFragment fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.maps);
if (fragment!= null) {
fragment.getMapAsync(this);
}
return view;
Вам не нужно создавать новый фрагмент. Вам нужна только ссылка на вашу карту, которую вы уже поместили в свой XML. во-вторых return
строка всегда является последней строкой функции. Потому что после выполнения обратной строки оставшиеся строки метода всегда пропускаются.