Вот чего я хочу достичь:
Небольшой фрагмент внутри Activity. Этот небольшой фрагмент должен иметь представление карты и некоторые другие макеты внутри него.
Этот небольшой фрагмент поддерживается отдельным классом, расширяющим Fragment. В этом классе фрагментов я использую привязку данных.
Но я получаю следующее исключение при mapFragment.getMapAsyn c (this);
java .lang.NullPointerException: попытка вызвать виртуальный метод void com.google. android .gms.maps.SupportMapFragment.getMapAsyn c (com.google. android .gms. maps.OnMapReadyCallback) 'для пустой ссылки на объект
Ниже приведены XML и Java код, который я использую.
XML
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<com.github.ybq.android.spinkit.SpinKitView
android:id="@+id/dieselPriceSpinKit2"
style="@style/SpinKitView.Large.Wave"
android:layout_width="match_parent"
android:layout_height="@dimen/_40ssp"
android:layout_centerInParent="true"
app:SpinKit_Color="#FFEB3B"
android:layout_weight="1"
android:elevation="5dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Order Status"
android:id="@+id/updateAboutOrders"
android:layout_centerInParent="true"
android:padding="@dimen/_20sdp"
android:textColor="#FFFFFF"
android:background="@color/colorAccent"
android:textStyle="bold"
android:textSize="@dimen/_20ssp"
android:onClick="onOrderStatusClicked"
android:visibility="gone"
android:elevation="10dp"
/>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardBackgroundColor="@color/colorAccent"
app:cardCornerRadius="6dp"
android:id="@+id/smallPreOrderCard"
android:layout_margin="5dp"
>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<fragment
android:id="@+id/mapViewSmallFrag"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_above="@+id/rl32"
android:name="com.google.android.gms.maps.SupportMapFragment"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/_5sdp"
android:id="@+id/rl32"
android:layout_alignParentBottom="true"
>
<ImageView
android:id="@+id/delBoyImageHomeActivity"
android:layout_width="@dimen/_50sdp"
android:layout_height="@dimen/_50sdp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_toEndOf="@+id/delBoyImageHomeActivity"
android:src="@drawable/ic_call"
app:fabCustomSize="@dimen/_30sdp"
android:layout_centerVertical="true"
app:backgroundTint="@color/colorPrimary"
android:id="@+id/smallPreCardFragFAB"
tools:ignore="RelativeOverlap" />
<TextView
android:id="@+id/preOrderFragTV1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="Delivery Boy Name"
android:textColor="#D1F800"
android:textSize="@dimen/_9ssp"
/>
<TextView
android:id="@+id/delBoyNameHomeActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/preOrderFragTV1"
android:layout_alignParentEnd="true"
android:text="Manish Garhwal"
android:textColor="#FFFFFF"
android:textSize="@dimen/_12ssp" />
<TextView
android:id="@+id/preOrderFragTV2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/delBoyNameHomeActivity"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/_8sdp"
android:text="Delivery Boy Number"
android:textColor="#D1F800"
android:textSize="@dimen/_9ssp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/preOrderFragTV2"
android:layout_alignParentEnd="true"
android:text="+91 8888888888"
android:id="@+id/delBoyNumberHomeActivity"
android:textColor="#FFFFFF"
android:textSize="@dimen/_12ssp" />
</RelativeLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
</layout>
JAVA
public class SmallPreOrderFragment extends Fragment implements ContractorForSmallPreordersFrag.view, OnMapReadyCallback {
private SmallPreOrderFragBinding fragBinding;
private PresenterForSmallPreOrderFrag smallPrePresenter;
private double orderLat1 = 0.0;
private double orderLong1 = 0.0;
private GoogleMap mMap;
private View view;
private MapView mapView;
private SupportMapFragment mMapFragment;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
fragBinding = DataBindingUtil.inflate(inflater, R.layout.small_pre_order_frag, container, false);
smallPrePresenter = new PresenterForSmallPreOrderFrag(this, new ModelForSmallPreOrderFrag());
onActivityStart();
return fragBinding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mMapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.mapViewSmallFrag);
mMapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
}
}
Пожалуйста, не отмечайте дубликаты, если вы не уверены, что это копия. Не просто посмотрите название, пожалуйста. Я уже поцарапал inte rnet и не смог найти решения.
Если найдется дубликат, пожалуйста, прокомментируйте вопрос со ссылкой, я сам удалю этот вопрос.
Спасибо.