如何在一个类中设置变量,然后在另一个类中更改它,然后在第三个类中使用更改的变量?
我有一个变量currentTime属于Application类,这意味着它可以在所有活动中使用:
我做了一个游戏,每当这个人输了,它就会显示他们玩这个应用程序的时间:
这很好用,但是我在gameOver活动上有另一个按钮。它需要用户返回Main_Menu才能再次启动游戏。问题是,我希望每当Main_Menu的onCreate方法时,变量currentTime都会重置。否则,时间就会不断增加。
例如,如果我玩游戏5秒然后输掉,我的分数是5。然后我点击“再次播放!”并且玩了6秒,我的分数应该是6。而是显示 11 。当我希望它重置时,如何阻止我的应用程序添加时间?我需要以某种方式再次调用activityCount.java,但这只是在应用程序的开头调用。我该如何解决这个问题?非常感谢,非常感谢您的帮助!
顺便说一句:如果您需要更多代码或任何您认为可以帮助我解决此问题的内容,请随时告诉我,我会尝试在此发布!以下是我认为可行的内容,只是我知道如何...
答案 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)