メソッド 'getSupportFragmentManager()'を解決できないというメッセージが見つかりました。アクティビティとしてフラグメント化します。タブスワイプでマップを使用するためです。
public class PETAcikarangsukatani extends Fragment {
Context context;
private static final LatLng SUKATANI = new LatLng(-6.171327, 107.178108);
private static final LatLng WRPOJOK = new LatLng(-6.222411, 107.162158);
private static final LatLng PILAR = new LatLng(-6.257033, 107.156472);
private static final LatLng CIKARANG = new LatLng(-6.256073, 107.143984);
GoogleMap googleMap;
final String TAG = "PathGoogleMapActivity";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_path_google_map, container, false);
context = rootView.getContext();
SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager()
.findFragmentById(R.id.map);
googleMap = fm.getMap();
Fragment
サブクラス内では、getFragmentManager
の代わりにgetSupportFragmentManager
を使用する必要があります。インポートがサポートライブラリからのものである場合、サポート1を取得します。
私の場合、Fragmentクラスがからインポートされることを確認しました
Android.support.v4.app.Fragment
からではない
Android.app.Fragment
それから私は使用しました
getActivity()。getSupportFragmentManager();
そして今、その働き。 onAttach()で取得したアクティビティインスタンスを使用しても動作しません。
Activityの代わりにFragmentActivityを拡張
API 21で作業している場合はgetSupportFragmentManager()
をgetFragmentManager()
に置き換えます。またはアプリがAndroidのバージョンをサポートしている場合3.0よりも古い場合は、Androidプロジェクトをサポートライブラリで設定し、ライブラリを使用するようにプロジェクトを設定し、今回はgetSupportFragmentManager()
を使用してください。
getActivity().getSupportFragmentManager()
を使用
また、アクティビティの代わりにAppCompatActivity
を使用できます。
その後、getSupportFragmentManager()
が機能します。
また、この場合、AppテーマをAppCompatテーマに拡張することも忘れないでください
ドキュメントによると、getSupportFragmentManager()はAppCompatActivityクラス内にのみ存在します。 Activityクラス内には存在しません。クラスがAppCompatActivityクラスを拡張していることを確認してください。
public class MainActivity extends AppCompatActivity {
}
getFragmentManager()
私の場合はこれでうまくいきました
あなたは使うべきです
getActivity.getSupportFragmentManager() like
//in my fragment
SupportMapFragment fm = (SupportMapFragment)
getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
この問題もありますが、getSupportFragmentManager
の前にgetActivity()
を追加すると解決しました。
getSupportFragmentManager()
はFragment
の一部ではないため、そのように取得することはできません。あなたはそれを親から取得することができますActivity
(だからonAttach()
で最も早い)normal
activity.getSupportFragmentManager();
または、 getChildFragmentManager() を試すことができます。これはフラグメントの範囲内ですが、API17 +が必要です
「メソッドgetSupportFragmentManager()を解決できません」を取得している場合は、使用してみてください
this.getSupportFragmentManager()
AndroidでDialogFragmentsを処理するときに機能します
Android.support.v4.app.Fragment
クラスをインスタンス化する場合は、getActivity().getSupportFragmentManager()
を呼び出して、解決できない問題を取り除く必要があります。ただし、Fragment by Googleの公式Androidドキュメントでは、この単純な問題を見落とす傾向があり、getActivity()
プレフィックスなしでドキュメント化されています。
上記のすべてを試しましたが、動作するものはありません
最後にこれを自分で試した
getBaseActivity().getFragmentManager()
そして働いている.. :)
私にとっては、次のようにv4をインポートするようにしました。
import Android.support.v4.app.DialogFragment;
次に使用:
getActivity().getFragmentManager()