Java 如何重置变量?

Java 如何重置变量?,java,android,xml,resources,manifest,Java,Android,Xml,Resources,Manifest,如何在一个类中设置变量,然后在另一个类中更改,然后在第三个类中使用更改后的变量 我有一个变量currentTime,它属于Application类,这意味着它可以用于所有活动: 我制作了一个游戏,每当玩家输了,它就会显示他们玩应用程序的时间: 这很好,但是我在gameOver活动上有另一个按钮。它会将用户带回主菜单以再次开始游戏。问题是,我希望在主菜单的onCreate方法启动时重置变量currentTime。否则,时间只会不断增加 例如,如果我玩游戏5秒钟,然后输了,我的分数是5。然后我再次点

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

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

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

这很好,但是我在gameOver活动上有另一个按钮。它会将用户带回主菜单以再次开始游戏。问题是,我希望在主菜单的onCreate方法启动时重置变量currentTime。否则,时间只会不断增加

例如,如果我玩游戏5秒钟,然后输了,我的分数是5。然后我再次点击播放!打6秒,我的分数应该是6分。相反,它显示11。当我想重置时,如何阻止我的应用程序添加时间?我需要再次调用activityCount.java,但这只是在应用程序开始时调用的。我如何解决这个问题?非常感谢,我真的很感谢你的帮助

顺便说一句:如果你需要更多的代码或任何你认为可以帮助我解决这个问题的东西,请随时告诉我,我会尝试在这里发布

这是我认为可行的方法,只是我知道如何


我很想在调用应用程序类构造函数的activity account类中添加一个构造函数,并将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设置为该值。希望这些计划中的一个能修复您的错误。

我不明白您为什么将此currentTime放在应用程序类中,这对我来说没有多大意义


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

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

现在很简单。与其让它变得混乱,或者添加多个方法来完成不同的任务,不如保留一个。每次按下玩游戏的按钮时调用该方法

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


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

我不明白你所说的添加一个调用应用程序类构造函数的构造函数是什么意思。你能举个例子吗?我尝试了第二种方法,除了只更改currentTime的一个实例,而不是原始的currentTime,它不允许我们更改或从任何其他活动调用它。请帮忙。非常感谢你的帮助和时间,我真的很感激。我会确保给你们最好的答案打分,一旦我看到一个例子,或者理解了一种方法,我就会喜欢你们的答案。谢谢谢谢你的编辑!好吧,我还是很困惑。在第一种方法中,每次死亡时重新初始化对象是什么意思?另外,没有这样做。currentTime-=System.currentTimeMillis;要让currentTime的值始终为0吗?这就像我想先调用一个获取当前时间的方法,然后调用一个重置当前时间的方法。那将是理想的。对于第二个方法,我在哪里和什么时候调用resetTime方法?谢谢,我真的很感谢你的帮助。一旦这些困惑消除,我会把你作为我最好的答案。谢谢,顺便说一句,我在回答的最后放了一张图片来进一步澄清我的问题;我想这和你告诉我的很相似。看一看!