Невозможно разрешить: FragmentManager.FindFragmentById‹MapFragment›

Следующая строка не компилируется:

var mapFragment = FragmentManager.FindFragmentById<MapFragment>(Resource.Id.map);

Ошибка CS0120 Ссылка на объект требуется для нестатического поля, метода или свойства «FragmentManager.FindFragmentById(int)».

Мой axml следующий:

  <fragment xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/map"
            android:layout_width="200dp"
            android:layout_height="200dp"
            class="com.google.android.gms.maps.MapFragment" />

Я ссылаюсь на следующую -_maps_api/#GoogleMap_Properties" rel="nofollow">документацию:

Какие-либо предложения?


person Scott Nimrod    schedule 18.10.2015    source источник
comment
в каком контексте вы выполняете код для получения фрагмента?   -  person Leo Nix    schedule 18.10.2015


Ответы (2)


FragmentManager — это свойство getter класса Activity, если ваш код не выполняется в контексте (методе) Activity, он должен выйти из объекта контекста.

person Leo Nix    schedule 18.10.2015

Согласно вашему целевому документу, я нашел этот.

_myMapFragment = MapFragment.NewInstance();
 FragmentTransaction tx = FragmentManager.BeginTransaction();
 tx.Add(Resource.Id.map, _myMapFragment);
 tx.Commit();
 GoogleMap map = myMapFragment.Map;
 if (map != null) {
 // The GoogleMap object is ready to go.
 }
person pRaNaY    schedule 18.10.2015
comment
Я получаю сообщение об ошибке компиляции: FragmentTransaction tx = FragmentManager.BeginTransaction(); Для нестатического поля требуется ссылка на объект - person Scott Nimrod; 18.10.2015