Я программирую игру для Android и поэтому использую класс, расширяющий представление о поверхности.
Моя активность выглядит так:
public class GameActivity extends FragmentActivity {
private Fragment fragEnd;
private GameView gameView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameView = new GameView(this);
setContentView(gameView);
fragEnd = (FragmentEnd) Fragment.instantiate(this, FragmentEnd.class.getName(), null);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add( WHAR COMES IN HERE??? , fragEnd);
ft.commit();
}
...
Класс GameView расширяет представление поверхности. Мой файл макета activity_game.xml выглядит так:
<RelativeLayout 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=".GameActivity"
android:id="@+id/myView">
</RelativeLayout>
Так что в моем xml нет ничего особенного. Теперь я хочу использовать фрагменты в игре для опций и т. Д. Я прочитал несколько руководств и добавил компоненты в свою (фрагмент) активность. Но я получаю исключение IllegalArgumentException: «представление не найдено» при попытке создать фрагмент. я знаю, что проблема в том, что текущий вид (Surfaceview) не может быть найден. в учебниках они работали только с XML-файлами макета, например, писали:
setContentView(R.layout.activity_main);
А затем получите компонент (например, идентификатор Relativelayout "relativeLayoutView") Activity_main, чтобы определить
ft.add( R.id.relativeLayoutView , fragEnd);
Но в моем случае в my activity_main ничего нет, потому что все происходит в классе gameView. Как мне решить эту проблему для отображения фрагментов?