私のアプリケーションには3つのタブがあり、そのうちの1つにマップを表示したい(ここではGoogleマップではない)。私は、アクティビティで完全に動作するようにマップを取得することができましたが、フラグメントクラスでは、フラグメントビューをMapFragmentにキャストしようとするとエラーがスローされます。ここでマップ - TabLayoutのフラグメント内のMapFragmentを使用
MapFragment mapFragment = (MapFragment)
getFragmentManager().findFragmentById(R.id.mapfragment);
エラー: Inconvetibleタイプ:com.here.android.mpa.mapping.MapFragmentに
をandroid.support.v4.app.supportキャストすることはできませんImが間違っているなら、私を修正しますが、してくださいこの理由は、android.support.v4.app.Fragment(TabsLayoutで使用される)にandroid.app.Fragment(HERE MAPS DOCの指示に従って地図を表示するために使用)を使用できないためです。
Googleマップを使用してこのエラーに関する多くの質問がありました。ただ2つ(first、second)を使用した場合、同じエラーが表示されるここでは、マップが問題を解決するのに役立ちました。
Googleマップでは、SupportMapFragment()を使用できますが、このマップはGoogleマップでのみ機能します。ここにマップを使用してこれに対する解決策はありますか?同じ目標に達するための異なるアプローチかもしれませんか?またはここでTabLayoutでMapsを実装するときに何か不足していますか?
ご協力いただければ幸いです!
マイコード:
MapFragment.java
public class Map extends Fragment {
public Map() {}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
MapFragment mapFragment = (MapFragment)
getFragmentManager().findFragmentById(R.id.mapfragment);
mapFragment.init(new OnEngineInitListener() {
@Override
public void onEngineInitializationCompleted(
OnEngineInitListener.Error error) {
if (error == OnEngineInitListener.Error.NONE) {
com.here.android.mpa.mapping.Map map = mapFragment.getMap();
} else {
System.out.println("ERROR: Cannot initialize MapFragment");
}
}
};
return view;
}
fragment_map.xml
<FrameLayout 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"
tools:context="com.example.modulos.tabsMenu.Config">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/mapFragmentContainer"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center"
android:background="#aaa" >
<fragment
class="com.here.android.mpa.mapping.MapFragment"
android:id="@+id/mapfragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center"
android:background="#aaa" >
<!-- other things here -->
</LinearLayout>
</FrameLayout>
非常に感謝しています@マルコは魅力的に働いた! – Luana