【问题标题】:Set Continue Button to resume previous Activity设置继续按钮以恢复上一个活动
【发布时间】:2013-02-27 16:47:02
【问题描述】:

我在主屏幕上有一个“继续”和一个“新游戏”按钮。单击“新游戏”按钮时,将运行以下代码:

Case:R.id.new_button:     
Intent  = new Intent(this, Difficulty.class);
        startActivity(openDifficulty);
        break; 

然后打开“难度”活动屏幕,其中包含“简单”和“困难”按钮。 例如,当单击“简单”或“困难”按钮时,会运行:

case R.id.easy_button:
        Intent openEasy = new Intent(this, EasyGameScreen.class);
        startActivity(openEasy);
        break; 

case R.id.hard_button:
        Intent openHard = new Intent(this, HardGameScreen.class);
        startActivity(openHard);
        break; 

然后将用户带到相应的级别

我怎样才能获得“继续”按钮以从上一场比赛离开的完全相同的位置继续上一场比赛?

感谢您的帮助

【问题讨论】:

    标签: java android


    【解决方案1】:

    您需要根据您的游戏要求保存游戏状态,然后检查您的第一个活动中是否存在任何保存状态,如果存在则显示继续按钮,然后单击该按钮加载游戏根据保存状态,你就完成了

    【讨论】:

    • 那么我该如何保存游戏的状态。是不是类似于 super.onCreate(savedInstanceState);
    • 使用 sharedpreferences 或 sqlite 数据库进行持久化存储
    【解决方案2】:

    您似乎需要使用startActivityForResult(); 而不是startActivity();。设置难度后,在下一个 Activity 中调用finish(); 将其关闭时,就会出现差异。

    • 如果您使用startActivityForResult(); 开始下一个活动,则 onActivityResult() 将在原始 Activtiy 中调用(即 您之前玩过的游戏),然后您可以从那里继续玩。
    • 当你使用startActivity(); 时,onActivityResult(); 永远不会得到 调用。

    我希望这会有所帮助。

    【讨论】:

    • 我试过 startActivityForResult();但它给出了一个错误,它不适用于参数(意图)
    • startActivitForResult(Intent, int) 需要一个 int 'requestCode' 以及 Intent。这实际上非常简单且非常有用。你发送任何你想要的 requestCode,它会在稍后在 onActivityResult() 中返回给你,这样你就可以知道你刚刚从什么返回。
    【解决方案3】:

    您需要将游戏状态保存到用户离开的位置。 您可以通过使用共享偏好来做到这一点。在继续游戏时,您将检查共享偏好的值并从中获取值。有关如何在共享首选项中保存数据的更多信息,请参阅 Android 官方文档

    http://developer.android.com/reference/android/content/SharedPreferences.html

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多