这是我的第一个应用程序,我正在尝试编写一个简单的骗子骰子游戏。
我在主要活动类中编写了所有内容,随机掷骰子,输入出价的文本编辑框和出价和调用的按钮。
那么在游戏运行后,我如何让它跟踪比分并再次运行呢?
我尝试使用重新启动按钮制作另一个活动屏幕,并在游戏结束后将其转到那里,以便我可以重新启动主要活动。但是,我可以从该屏幕按返回(电话键)并在上一场比赛结束时卡住。
此外,我正在尝试使用数组来跟踪输赢,但不确定如何将其从活动中来回移动。
要重新启动主要活动,您可以执行
finish();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
startActivity(new Intent(getContext(), YourMainActivity.class));// then call again
并使用首选项或 sqlite 保留您的数据
好吧,您可以只创建一个包含数字的全局数组,并在用户单击按钮或您想要触发滚动的任何内容时运行一个方法。向您展示的一种简单方法是
<Button
android:layout_height="wrap_content"
android: layout_width="wrap_content"
android:text="Touch Me"
android:on click="leRoll" />
然后在您的活动中,您可以调用一个方法leRoll
,当单击“触摸我”按钮时触发该方法。所有得分的节省都可以使用全局数组在其中完成。
我建议你在 SQLite 数据库中记录你的得失。这听起来可能有点矫枉过正,但它非常适合存储任意数量的重复结构化数据位。如果开销太大,则打开一个文件并将新的游戏分数附加到末尾,或者将它们存储在 SharedPreferences 中的字符串数组中。这三个中的任何一个对于存储简单的值向量都是一个不错的选择,您事先不知道可能有多少值,并且您可以从应用程序的任何部分读取它们。
您应该使用 SharedPreference 来保存当前的游戏状态,以便您的游戏 Activity 每次返回时都能显示正确的内容。游戏结束后,立即写入游戏状态的 SharedPreference 值,表示玩家处于游戏结束状态。然后,当 Activity 下一次启动时,它会知道开始一个新游戏。
不完全确定这是否是您正在寻找的,但是:
您可以覆盖后退按钮以转到第二个活动的屏幕。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intentstart = new Intent(Activity2.this, MainActivity.class);
intentstart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intentstart);
return true;
}
return super.onKeyDown(keyCode, event);
}