我正在创建一个简单的应用程序来同时学习Android,我非常喜欢新手。
到目前为止,这就是我所拥有的:
应用程序打开到levels.java
,其中有8个按钮(在xml文件中),单击按钮8时,我有以下代码:
public void button_clicked8(View v) {
startActivity(new Intent(this, GameScreen.class));
}
启动我的游戏屏幕活动,玩完简单的加法游戏后,我有一个按钮,上面写着“结束”,里面调用了一个finish()
的函数,它还设置了一个变量gameover=true;
,这让我回到了levels.java
但是如果我再次按下按钮8,它会将我发送到Gamescreen,但我发现仍然设置了gameover=true;
:(
为什么?如何开始“新鲜”活动?
谢谢!
答案 0 :(得分:1)
我建议你read my answer to another mildly similar question。基本上,完成与用户按下后退按钮完全相同。作为开发人员,您或多或少可以根据用户的交互(即通过意图)来更改状态。
例如,您可以执行以下操作...
Intent intent = new Intent();
Bundle bun = new Bundle();
bun.putBoolean("newGame", true);
intent.setClass(this, GameActivity.class);
intent.putExtras(bun);
startActivity(intent);
答案 1 :(得分:1)
我猜你不想在gameOver为真时启动游戏画面
public void button_clicked8(View v) {
if(gameOver) return;
startActivity(new Intent(this, GameScreen.class));
}
答案 2 :(得分:1)
启动Activity时使用标记for intent。
答案 3 :(得分:0)
如何在GameScreen的gameover
方法中重置onCreate()
值?
答案 4 :(得分:0)
请阅读有关活动生命周期here的信息,并且在设置gameover
变量时,另一种存储值的方法是使用SharedPreferences
。这样做:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("gameover", true);
editor.commit();
并阅读你的价值,这样做:
Boolean gameOver = sharedPreferences.getBoolean("gameover", true);
通过这样做,您将永久设置您的价值,而不必担心活动生命周期事件。
答案 5 :(得分:0)
u can declare a static boolean variable gameOver in levels.java.
你可以在GameScreen.java中点击结束按钮进行修改。 当完成被调用时,所有d变量被破坏。 你可以覆盖GameScreen.java的onCreate(),onResume(),onDestroy(),onStart(),onPause(),onStop()来处理你的变量