Можно ли запустить SurfaceView с игровой веткой в ​​любое время, кроме как при запуске программы? - PullRequest
0 голосов
/ 08 августа 2010

Я прочитал несколько примеров программ и учебных пособий, чтобы попытаться решить мою проблему, но все они, кажется, идут одинаково.Я использовал несколько видов деятельности и XML-документов, чтобы создать меню, которое загружается при запуске игры.Когда пользователь нажимает кнопку «Начать игру», он загружает новое действие, которое устанавливает вид с моей игровой нитью и всеми игровыми свойствами.Я знаю, что это действие работает, потому что я запускаю его как отдельный проект, но каждый раз, когда я пытался запустить его после Меню, я получаю исключение nullPointerException, и оно принудительно закрывается.Я прочитал учебник SurfaceViewOverlay и попытался использовать эту реализацию, но я использую SurfaceView, а не GLSurfaceView.Я спорю о переписывании всей моей программы, чтобы использовать OpenGL, но я подумал, что посмотрю, знает ли кто-нибудь еще, что я делаю здесь неправильно.Если вам нужны фрагменты кода, я могу вставить их сюда, но это не совсем конкретный код, который неправильный, я думаю, что я использую (злоупотребляю) язык ...

Спасибо за любую помощь,Аарон

1 Ответ

0 голосов
/ 02 сентября 2010

Я обнаружил свою проблему довольно давно, но подумал, что вернусь и дам ответ любому, у кого есть моя проблема. При использовании SurfaceView он должен быть частью действия, которое его создало, и быть в каком-то виде FrameLayout в xml для этого действия.

Например:

    <com.example.MySurfaceView
    android:id="@+id/mySurfaceView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

Вы можете добавить любые другие элементы макета, которые вам нужны, но это необходимо для создания SurfaceView. Я надеюсь, что это поможет всем, у кого возникла моя проблема, просто задайте любые дополнительные вопросы, и я обязательно уточню, если это необходимо.

...