我怎样才能重置我的变量?
How can I reset my variable?
如何在一个class中设置一个变量,然后在另一个class中更改它,然后在第三个class中使用更改后的变量?
我有一个属于应用程序 class 的变量 currentTime,这意味着它可以用于所有活动:
我做了一个游戏,每当有人输了,它就会显示他们玩这个应用的时间:
这很好用,但是我在 gameOver 上有另一个按钮 activity。它会将用户带回 Main_Menu 以重新开始游戏。问题是,我希望变量 currentTime 在 Main_Menu 的 onCreate 方法时重置。否则,时间只会不断增加。
比如我玩了5秒然后输了,我的分数是5。然后我点击"Play Again!"玩了6秒,我的分数 应该是六分。 相反它显示 十一分 。当我希望它重置时,如何阻止我的应用程序添加时间?我需要以某种方式再次调用 activityCount.java ,但这只会在应用程序启动时调用。我该如何解决这个问题?非常感谢,非常感谢您的帮助!
顺便说一句:如果您需要更多代码或您认为可以帮助我解决此问题的任何内容,请随时告诉我,我会尽力 post 在这里!
这是我认为可行的方法,只是我知道如何...
我很想向 activity 帐户 class 添加一个构造函数,它调用应用程序 class 的构造函数,并将 "currentTime" 实例化为是 System.currentTimeMillis();
这个,或者我会在您请求再次玩游戏时将变量重置为零,重置分数。 (也许让时间 -= System.currentTimeMillis();)
希望对您有所帮助!
编辑:
您可以通过创建 resetTime 方法来尝试第二种方法
long currentTime = System.currentTimeMillis();
public void resetTime(){
this.currentTime -= System.currentTimeMills();
}
或者,对于我推荐的第一种方法,类似这样
public activityCount(){
super();
this.currentTime -= System.currentTimeMillis();
}
然后在每次死亡时重新初始化对象,
在没有看到每个 class 的情况下很难解释,但你基本上想在每次死亡时将时间重置为程序首次启动时的时间。这也可以通过将这个初始时间(程序启动的时间)存储在一个单独的变量中来完成 - 在您的主要 class 或其他 class 方法中。然后您可以在需要时将 currentTime 设置为此。希望这些计划之一可以解决您的错误。
我不明白你为什么把这个 currentTime 放在应用程序中 class,对我来说没有多大意义。
我认为你应该将其声明为class的静态成员,或者将其放在单例class中,然后在每次开始游戏时更新值,而不是启动应用程序。
我明白了。我不应该使用 Application class,因为它会在每次应用程序启动时运行,甚至在 onCreate 方法之前运行。这让我很难回到 class 并重置变量。这是我的解决方案:
现在很简单。与其让它变得混乱并添加多种方法来完成不同的任务,不如只保留一个。每次按下玩游戏的按钮时调用该方法。
你会注意到它不再扩展应用程序class这是出于同样的原因。
就是这样!只需调用一个静态方法,它设置静态变量的时间。然后,您可以稍后处理该变量。无需重置方法!
如何在一个class中设置一个变量,然后在另一个class中更改它,然后在第三个class中使用更改后的变量?
我有一个属于应用程序 class 的变量 currentTime,这意味着它可以用于所有活动:
我做了一个游戏,每当有人输了,它就会显示他们玩这个应用的时间:
这很好用,但是我在 gameOver 上有另一个按钮 activity。它会将用户带回 Main_Menu 以重新开始游戏。问题是,我希望变量 currentTime 在 Main_Menu 的 onCreate 方法时重置。否则,时间只会不断增加。
比如我玩了5秒然后输了,我的分数是5。然后我点击"Play Again!"玩了6秒,我的分数 应该是六分。 相反它显示 十一分 。当我希望它重置时,如何阻止我的应用程序添加时间?我需要以某种方式再次调用 activityCount.java ,但这只会在应用程序启动时调用。我该如何解决这个问题?非常感谢,非常感谢您的帮助!
顺便说一句:如果您需要更多代码或您认为可以帮助我解决此问题的任何内容,请随时告诉我,我会尽力 post 在这里!
这是我认为可行的方法,只是我知道如何...
我很想向 activity 帐户 class 添加一个构造函数,它调用应用程序 class 的构造函数,并将 "currentTime" 实例化为是 System.currentTimeMillis();
这个,或者我会在您请求再次玩游戏时将变量重置为零,重置分数。 (也许让时间 -= System.currentTimeMillis();)
希望对您有所帮助!
编辑:
您可以通过创建 resetTime 方法来尝试第二种方法
long currentTime = System.currentTimeMillis();
public void resetTime(){
this.currentTime -= System.currentTimeMills();
}
或者,对于我推荐的第一种方法,类似这样
public activityCount(){
super();
this.currentTime -= System.currentTimeMillis();
}
然后在每次死亡时重新初始化对象,
在没有看到每个 class 的情况下很难解释,但你基本上想在每次死亡时将时间重置为程序首次启动时的时间。这也可以通过将这个初始时间(程序启动的时间)存储在一个单独的变量中来完成 - 在您的主要 class 或其他 class 方法中。然后您可以在需要时将 currentTime 设置为此。希望这些计划之一可以解决您的错误。
我不明白你为什么把这个 currentTime 放在应用程序中 class,对我来说没有多大意义。
我认为你应该将其声明为class的静态成员,或者将其放在单例class中,然后在每次开始游戏时更新值,而不是启动应用程序。
我明白了。我不应该使用 Application class,因为它会在每次应用程序启动时运行,甚至在 onCreate 方法之前运行。这让我很难回到 class 并重置变量。这是我的解决方案:
现在很简单。与其让它变得混乱并添加多种方法来完成不同的任务,不如只保留一个。每次按下玩游戏的按钮时调用该方法。
你会注意到它不再扩展应用程序class这是出于同样的原因。
就是这样!只需调用一个静态方法,它设置静态变量的时间。然后,您可以稍后处理该变量。无需重置方法!