2014-10-02 88 views
1

我正在開發一個有兩個活動的遊戲。我有一個類,ModelGetter,用這種方法:活動之間的Android Java計數器

public int getPoint { 
    return point++; 
} 

當我FirstActivity按下一個按鈕,我稱之爲modelgetter.getPoint(),當我在SecondActivity按下一個按鈕,則返回0。我再打電話modelgetter1.getPoint(),它仍然返回0 。我在SecondActivity中創建了一個新的ModelGetter實例。

我不知道如何在不同的活動中使用相同的實例,並讓我的變量始終增加。

+0

請格式化您的問題,使其變得更好的可讀性。 – 2014-10-02 08:38:00

+0

http://stackoverflow.com/q/13079302/1689695 – CocoNess 2014-10-02 09:22:18

回答

2

如果你正在創建一個實例,那麼數據將是不同的。如果你想要使用相同的計數器,請將其更改爲靜態。創建一個類是這樣的:

public class ModelGetter{ 

    public static int point; 

    public static int getPoint(){ 
    return point++; 
    } 

} 

,並調用它像ModelGetter.getPoint();

+0

這是錯誤的。第一次將返回0. – Alboz 2014-10-02 08:46:59

+0

這不是什麼操作系統問。所以我很抱歉你通知你這是沒有錯的。 – 2014-10-02 08:51:18

+0

他問他爲什麼在他調用方法後返回0 ..閱讀問題。 – Alboz 2014-10-02 08:52:27

1

您可以通過多種方式來實現你想要什麼。

  1. Make ModelGetter singleton。
  2. 使getPoint和指向靜態。

我現在只有兩個想法。 我認爲還有其他方法。

0

爲了得到1第一次調用它,代碼應該是:

public static int getPoint { 
     return ++point; // First increment the variable point and then return it. 
    } 

聲明的方法本身是靜態和使用類名ModelGetter.getPoint();

記住叫它:return point ++先返回,然後遞增變量點。你不想要這個。

爲了能夠訪問來自活動相同的變量聲明爲類變量或「靜態」

public static int point 
+0

這兩個點變量,並且getPoint方法將必須是靜態的,而不僅僅是變量 – Yosi199 2014-10-02 08:44:49

+0

@ Yosi199如果此方法處於從兩個活動擴展的超類中,則不應該如此! – Alboz 2014-10-02 08:46:27

+0

@ Yosi199所以呢?你逃脫了? – Alboz 2014-10-02 08:51:13