私はGoogleマップを持っている断片があります。この断片をアラートダイアログ内に保存しようとしています。しかし、それは決して受け入れられません。アンドロイドでアラートダイアログ内でフラグメントトランザクションを実行できません
まず、ダイアログ内でv4フラグメントを許可しないようにしています。私はコンストラクタを通してそのv4のフラグメントオブジェクトを渡そうとしました。
このアクティビティにはコンストラクタが含まれていないとエラーが表示されます。どのようにイライラするのはこれです!ここで
は私のフラグメントのコードです:
package com.motowala.AfterLogin;
import android.os.Bundle;
import android.support.annotation.Nullable;
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.MapView;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.acs.R;
public class MapDialogFragment extends Fragment implements OnMapReadyCallback {
View v;
MapView googleMapView;
GoogleMap googleMap;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.google_map_fragment, container, false);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
googleMapView=(MapView)v.findViewById(R.id.google_map_view);
googleMapView.onCreate(null);
googleMapView.onResume();
googleMapView.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
MapsInitializer.initialize(getActivity());
this.googleMap=googleMap;
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.addMarker(new MarkerOptions().position(new LatLng(16,80)));
}
}
私は、フラグメントレイアウトに使用したコードは、この
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.acs.AlertAndProgressDialogs.GoogleMapLocationPicker"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.gms.maps.MapView
android:id="@+id/google_map_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.google.android.gms.maps.MapView>
</FrameLayout>
である私は警告ダイアログを使用したコードは、これは次のとおりです。
package com.acs.AlertAndProgressDialogs;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import com.google.android.gms.maps.MapView;
import com.acs.AfterLogin.MapDialogFragment;
import com.acs.R;
public class GoogleMapLocationPicker extends DialogFragment {
View layout;
MapView mapView;
MapDialogFragment googleMapFragment;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = getActivity().getLayoutInflater();
layout = inflater.inflate(R.layout.google_map_frag_dialog, null);
googleMapFragment=new MapDialogFragment();
FragmentManager manager=getActivity().getFragmentManager();
FragmentTransaction transaction=manager.beginTransaction();
transaction.replace(R.id.map_replacable_frag,googleMapFragment);
/* This is where I'm ending with error. It is saying it requires a fragment
object but it found object of type MapDialogFragment.
I have even tried using getChildFragmentManager() even that is also not
working at here.*/
}
}
ありがとうございます...
多くの人にお付き合いいただきありがとうございました – sai
ようこそ。 – bharath