2016-02-12 100 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