Не удается добавить карту Google в фрагмент окна навигации

Я пытаюсь создать приложение для Android и хочу добавить карту в навигационный ящик. Опции ящика открывают новые фрагменты, но не могут заставить фрагмент карты работать.

MainActivity.java устанавливает фрагмент следующим образом:

/**
 * Diplaying fragment view for selected nav drawer list item
 * */
private void displayView(int position) {
    // update the main content by replacing fragments
    Fragment fragment = null;
    switch (position) {
    case 0:
        fragment = new HomeFragment();
        break;
    case 1:
        fragment = new PoliFragment();
        break;
    case 2:
        fragment = new TilefonaFragment();
        break;
    case 3:
        fragment = new DromologiaFragment();
        break;
    case 4:
        fragment = new XartisFragment();
        break;

    default:
        break;
    }

    if (fragment != null) {
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frame_container, fragment).commit();

        // update selected item and title, then close the drawer
        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        //setTitle(navMenuTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }
}

Фрагмент карты (XartisFragment.java) выглядит следующим образом:

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.SupportMapFragment;


public class XartisFragment extends Fragment {
private GoogleMap map;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.map_layout,container, false);

    map =   ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMap();//((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();
    return rootView;
}


}

Map_layout.xml является следующим:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="8dp" />


</RelativeLayout> 

Когда я пытаюсь запустить его, я получаю:

Error:(178, 15) error: incompatible types: XartisFragment cannot be converted to Fragment

Это указывает на ошибку в этой строке в MainActivity.java

fragment = new XartisFragment();

Любые идеи о том, что изменить, чтобы заставить его загружаться?

1 ответ

Решение

Попробуй использовать getSupportFragmentManager() вместо getFragmentManager(),

или же

Убедитесь, что оба места импортируют один и тот же класс Fragment. Похоже, что в одном месте вы импортируете android.app.Fragment (нативная версия фрагментов API уровня 11), а в других местах вы импортируете android.support.v4.app.Fragment (фрагменты из поддержки Android). пакет).

Другие вопросы по тегам