如何重置变量?

时间:2015-10-31 01:21:09

标签: java android xml resources manifest

如何在一个类中设置变量,然后在另一个类中更改它,然后在第三个类中使用更改的变量?

我有一个变量currentTime属于Application类,这意味着它可以在所有活动中使用:

enter image description here

我做了一个游戏,每当这个人输了,它就会显示他们玩这个应用程序的时间:

enter image description here

这很好用,但是我在gameOver活动上有另一个按钮。它需要用户返回Main_Menu才能再次启动游戏。问题是,我希望每当Main_Menu的onCreate方法时,变量currentTime都会重置。否则,时间就会不断增加。

例如,如果我玩游戏5秒然后输掉,我的分数是5。然后我点击“再次播放!”并且玩了6秒,我的分数应该是6。而是显示 11 。当我希望它重置时,如何阻止我的应用程序添加时间?我需要以某种方式再次调用activityCount.java,但这只是在应用程序的开头调用。我该如何解决这个问题?非常感谢,非常感谢您的帮助!

顺便说一句:如果您需要更多代码或任何您认为可以帮助我解决此问题的内容,请随时告诉我,我会尝试在此发布!

以下是我认为可行的内容,只是我知道如何...

enter image description here

3 个答案:

答案 0 :(得分:0)

我很想在活动帐户类中添加一个构造函数来调用应用程序类的构造函数,并将“currentTime”实例化为System.currentTimeMillis();

这个,或者当你请求再次玩游戏时,我会将变量重置为零,重置分数。 (也许制作时间 - = System.currentTimeMillis();)

希望这有帮助!

编辑:

对于第二种方法,您可以尝试创建一个resetTime方法

long currentTime = System.currentTimeMillis();

public void resetTime(){
    this.currentTime -= System.currentTimeMills();
}

或者,对于我推荐的第一种方法,类似这样的

public activityCount(){
    super();
    this.currentTime -= System.currentTimeMillis();
}

然后每次你死的时候重新初始化对象,

在没有看到每个课程的情况下很难解释,但是你基本上想要重置每次死亡时的时间,以及程序刚开始时的状态。这也可以通过将这个初始时间(程序启动的时间)存储在主类或其他类方法中的单独变量中来完成。然后,您可以在需要时将currentTime设置为此值。希望其中一个计划能解决你的错误。

答案 1 :(得分:0)

我不明白为什么你把这个currentTime放在Application类中,它对我来说没什么用。

我认为你应该将它声明为类的静态成员,或者将它放在单例类中,然后在每次启动游戏时更新值,而不是启动应用程序。

答案 2 :(得分:0)

我明白了。我不应该使用Application类,因为它在应用程序启动时运行,甚至在onCreate方法之前运行。这使我很难回到那个类并重置变量。这是我的解决方案:

enter image description here

现在很简单。不要让它混淆并添加多种方法来完成不同的任务,只需保留一个。每次按下播放游戏的按钮时调用一种方法。

您会注意到它不再扩展应用程序类这也是出于同样的原因。

enter image description here

那就是它!只需调用一个静态方法,该方法设置静态变量的时间。然后,您可以稍后处理该变量。无需重置方法!