2014-09-04 58 views
0

我一直強調嘗試這樣做(即時通訊新的這一點)。我創建一個應用程序的android像cookie點擊器,我已經完成了75%。
我正在爲一件事而掙扎。我已經完成了對按鈕的全部點擊,它向主整數添加了一個,在這種情況下,就是您擁有的cookie的數量。

我現在想要一個東西,如果你點擊一個按鈕,它會添加5個餅乾,每個可以說1秒。

但是,這個按鈕是在不同的活動,當它按下時,我需要發送整個每5秒1次主要活動添加5。我不太清楚,但我認爲我必須使用面向對象的東西來做到這一點,我不確定代碼中的位置。有人能幫我嗎?掙扎着將數據發送到另一個活動

回答

0

這是一個CookieCounter你的單身課。 使用CookieCounter.getInstance().increaseCount(int amount)增加計數amount。使用CookieCounter.getInstance().getCount()獲取當前計數。

public class CookieCounter { 
    private static CookieCounter instance; 
    int count = 0; 
    public static CookieCounter getInstance() { 
     if(instance == null) { 
      instance = new CookieCounter(); 
     } 
     return instance; 
    } 

    public void increaseCount(int amount) { 
     count += amount; 
    } 

    public int getCount() { 
     return count; 
    } 
} 
+0

能否請你解釋一下實例是什麼構造做 – XetronProgrammer 2014-09-05 17:01:23

+0

實例是varianle持有實際的CookieCounter對象。 getInstance()方法檢查實例變量是否已被初始化,並在需要時初始化新的CookieCounter。稍後調用getInstance()方法總是返回相同的CookieCounter對象(存儲在實例變量中)。這樣您的活動可以使用相同的CookieCounter對象。 – user3811368 2014-09-05 17:10:34

0

使用enum採用單例模式。它是線程安全的,更容易實現:

public enum ClickerCounter { 
HANDLER; 

private int _count = 0; 

public void increase(int amount) { 
    _count += amount; 
} 

public int getCount() { 
    return _count; 
} 

} 

//使用

ClickerCounter.HANDLER.getCount(); 
ClickerCounter.HANDLER.increase(value); 
相關問題