Java 为什么我的整数值在倒计时中设置为5时为零
在下面的代码中,我有一个名为ship1的整数,它的值在倒计时对象中设置为5。我想把这个int值放到一个字符串数组中,但是当我这样做时,当我把字符串数组的第一行打印到文本视图中时,ship1AddSpend这个整数显示为零。为什么数值没有变为5?有人能帮忙吗Java 为什么我的整数值在倒计时中设置为5时为零,java,android,arrays,Java,Android,Arrays,在下面的代码中,我有一个名为ship1的整数,它的值在倒计时对象中设置为5。我想把这个int值放到一个字符串数组中,但是当我这样做时,当我把字符串数组的第一行打印到文本视图中时,ship1AddSpend这个整数显示为零。为什么数值没有变为5?有人能帮忙吗 final TimerClass Timer2 = (TimerClass) new TimerClass(500,1000) { final public int OnFinish() { ship1Add
final TimerClass Timer2 = (TimerClass) new TimerClass(500,1000) {
final public int OnFinish()
{
ship1AddSpend = 5;
this.start();
return ship1AddSpend;
}
}.start();
int ship1AddSpend;
final String[] shipDesc = {
"10 Planets Every 5 Secs \n" + ship1AddSpend + "$",
"50 Planets Every 5 Secs \n",
"100 Planets Every 5 Secs \n 1500$",
"500 Planets Every 4 Secs \n 3000$",
"1000 Planets Every 4 Secs \n 7500$",
"5000 Planets Every 4 Secs \n 15000$",
"10000 Planets Every 3 Secs \n 50000$",
"30000 Planets Every 3 Secs \n 100000$",
"60000 Planets Every 3 Secs \n 500000$",
"100000 Planets Every 1 Secs \n 1000000$"};
将int shipAddSpend移到up将解决您的问题
int ship1AddSpend;
final TimerClass Timer2 = (TimerClass) new TimerClass(500,1000) {
final public int OnFinish()
{
ship1AddSpend = 5;
this.start();
return ship1AddSpend;
}
}.start();
final String[] shipDesc = {
"10 Planets Every 5 Secs \n" + ship1AddSpend + "$",
"50 Planets Every 5 Secs \n",
"100 Planets Every 5 Secs \n 1500$",
"500 Planets Every 4 Secs \n 3000$",
"1000 Planets Every 4 Secs \n 7500$",
"5000 Planets Every 4 Secs \n 15000$",
"10000 Planets Every 3 Secs \n 50000$",
"30000 Planets Every 3 Secs \n 100000$",
"60000 Planets Every 3 Secs \n 500000$",
"100000 Planets Every 1 Secs \n 1000000$"};
仅当计时器完成时,您才设置SHIP1ADDSPUND值。您还需要给它一个初始值,如:
int ship1AddSpend = 5;
当然,您是在计时器完成之前读取该值。只有在OnFinish执行后才能阅读。不,不会,此移动对代码行为没有任何影响,变量仍然具有相同的作用域。如果将变量声明为volatile int,会发生什么情况?为什么在24小时内针对同一问题发布了两篇文章?因为第一篇没有得到回答,这不起作用。我将整数设置为3,但当计时器结束时,它仍然没有更新为5。您必须发布更多代码。您当前的代码片段太短,无法理解您想要实现的目标。那么,如何在计时器完成后使字符串成为值?您的代码正常。但是你应该在一个更好的时间执行它。