我想避免 Android 用户玩我的游戏并游戏结束,他们只需单击后退按钮即可返回游戏。
这是我从 GameActivity 跳转到新的 GameOver Activity 的代码。我可以使用什么命令?我只是想回到主要 Activity 而不是游戏 Activity 。
private void checkFails(){
TextView failsleft = (TextView) findViewById(R.id.fails);
if(fails < 1){
failsleft.setText("Fails left: "+fails);
Intent intent = new Intent(this, GameOverActivity.class);
startActivity(intent);
}else{
failsleft.setText("Fails left: "+fails);
fails--;
}
}
最佳答案
如果你的 GameActivity 是由 MainActivity 启动的,你可以使用 extra 来告诉主 Activity 游戏已经结束。因此,您需要使用 startActivityWithResult
启动 GameActivity。
在MainActivity中,使用startActivityForResult()
启动GameActivity:
public class MainActivity extends AppCompatActivity {
...
// Request code for handling the GameActivity result
// make it final so it can be changed.
private static final int gameOverRequestCode = 777;
// Start GameActivity
private void startTheGame() {
Intent intent = new Intent(this, GameActivity.class);
// start the GameActivity and wait for the result.
startActivityForResult(intent, gameOverRequestCode);
}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
// Handle the result from GameActivity.
// when the result is accepted from GameActivity, start the GameOverActivity.
case gameOverRequestCode:
if (resultCode == Activity.RESULT_OK) {
Intent intent = new Intent(this, GameOverActivity.class);
startActivity(intent);
}
break;
}
}
...
}
在GameActivity中,游戏结束时发送结果:
private void checkFails(){
TextView failsleft = (TextView) findViewById(R.id.fails);
if(fails < 1){
failsleft.setText("Fails left: "+fails);
// Send the result back to main activity
Intent i = getIntent();
// you can add any extra here, for example, game state.
// i.putExtra("extra_key", value);
setResult(Activity.RESULT_OK, i);
// Finish the GameActivity because we don't need it anymore.
finish();
}else{
failsleft.setText("Fails left: "+fails);
fails--;
}
}
关于java - 避免 Android 中的物理后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48412379/