2016-02-12 65 views
0

因此,我有一个活动已通过意图启动另一活动。除此之外,我还包含了一个布尔值,以便将该值传递给我想要打开的活动。我的问题是,我已经使用Log.D来显示在我的活动中相关位置布尔值是true还是false。到目前为止,它的什么,我期待但后来当我使用一个onClick方法的价值,它改变为假出于某种原因...这就是它的变化:尽管我分配了变量,但变量的值会发生变化

Log.d("hints", "Value of hints, GameActivity above keypadhash: " + hints); 
    keypadHash.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //if reach last question then output score 
      if (questionCounter < 10) { 
       Log.d("hints", "Value of hints, GameActivity onClick(): " + hints); 
       if (hints == false) { 

在第一Log.d它打印out D/hints: Value of hints, GameActivity above keypadhash: true但在第二个Log.d上打印出来:D/hints: Value of hints, GameActivity onClick(): false它不会在if语句后面执行else语句,因为它满足条件时它不应该。

我不知道它如何在几行代码中改变它的值。布尔变量是一个全局变量。

编辑=发现我的问题。原来我的应用程序正在读取之前保存的状态,它正在恢复值

+0

请提供onClick方法的完整代码 – Carmine

+0

您必须在某处修改它。提供完整的代码。 – Ritesh

+0

在Java中没有“全局变量”这样的东西。如果您甚至难以描述问题并告诉我们“提示”是什么,那么您很少有机会掌握Android的生命周期。请放心,变量和属性不会自己改变数值。 – fdreger

回答

1

onClick不是立即调用 - 它是一个侦听器,因此只有在触发onClick事件时才会调用它。所以即使这些代码行是最接近的,它们也不会严格执行。在你提供的内容和用户点击你的全局变量之间的其他地方正在改变。

+0

这不是问题的答案。您应该将其添加到评论中。 – Ritesh