2014-06-21 69 views
1

我正在使用ImageButtons的大量的應用程序和上一個值被添加到一個整數變量那些ImageButtons每onTouch事件。這裏談到的問題,讓我們說我有這樣的說法,在某個點返回true:凍結的整數

if (x == y) 

我怎樣才能讓integerVariable保持不變,即使用戶再次觸摸這些圖片? 例如是這樣的:

if (x == y){ integerVariable will not change}; 
+3

別再分配什麼呢? – nhaarman

+0

發佈您添加整數變量的代碼 –

+0

我正在考慮這樣做......但這需要重寫代碼的很大一部分。我認爲我從SDK中錯過了一些東西。 – BugaIulian

回答

1

你可以通過自定義布爾對此進行控制。這是由於這樣的原因(自定義,非標準字段訪問),建議使用getter和setter。

永遠只能使用二傳手setMyInt(int value)在你的代碼,從不直接訪問現場,你會沒事的。如果您需要知道該值是否已更新,請查看返回的布爾值。

private int myInt; 
private boolean isMyIntLocked = false; 

public boolean setMyInt(int value) { 
    if (isMyIntLocked) { 
     Log.i(TAG, "cannot set myInt, it's been locked"); 
     return false; 
    } else { 
     this.myInt = value; 
     return true; 
    } 
} 

public void lockMyInt(boolean doLock) { 
    this.isMyIntLocked = doLock; 
} 
+0

對我的代碼進行了一些更改,但是使用了它的邏輯,它起作用了!非常感謝。 – BugaIulian

+0

沒問題,很高興你把它分類。 – indivisible

2

您可以使用boolean來檢查整數是否應遞增。

您的變量:

boolean increment = true; 
int x = 0, y = 1; 

當用戶點擊X按鈕:

if(increment) 
    x++; 

if(x == y) 
    increment = false;