Чтобы устранить эту проблему, я предпринял следующие шаги:
В свой MainActivity я добавил следующий код:
public class MainActivity extends AppCompatActivity {
private Context mContext = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button newScreen = (Button) findViewById(R.id.new_game_btn);
Button exit = (Button) findViewById(R.id.exit_btn);
newScreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, GameActivity.class);
mContext.startActivity(intent);
}
});
В класс GameActivity включен мой вышеупомянутый код, который я использовал в MainActivity для запуска моего вида поверхности, показанного ниже для справки.
//Launches a surface view
public class GameActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//sets full screen
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//set no title
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(new GameSurface(this));
}
}
А мой класс GameSurface - это тот, который расширяет SurfaceView и содержит лог c игры. Следует отметить, что для этого мне нужно было создать файл activity_game. 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" android:background="#0099cc" tools:context=".GameActivity">
<com.example.fxgame.GameSurface
android:id="@+id/mainview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
Это все еще не работало после реализации этого, однако используя выходной журнал, я обнаружил, что еще не добавил действие, на которое ссылается мой MainActivity, в мой манифест android, в котором определены действия. Это было исправлено добавлением следующей строки кода в теге:
<activity android:name=".GameActivity" />
Я потратил целый день на это, так что надеюсь, что это поможет кому-то еще.