2012-03-12 93 views
0

我一直在試圖找到一種方法來設置一個類別的變量,而另一個類別中有意圖變化。也許我正在尋找錯誤的東西,也許我過分複雜化了,我不知道。Android:從其他類別設置變量

基本上,我現在正在做的是獲取所選的listView項目,檢查其索引值,並根據選擇對一個或兩個變量(來自不同的類)進行變換。

public void onItemClick(AdapterView<?> parent, View v, int position, long id){ 
      theGame settings = null; 
      switch(position){ 
       case 0: 
        settings.baseWave = 10; 
        settings.baseRate = 5; 
        break; 
       case 1: 
        settings.baseWave = 20; 
        settings.baseRate = 10; 
        break; 
       case 2: 
        settings.baseWave = 30; 
        settings.baseRate = 15; 
        break; 
      } 
     } 

「theGame」是我的外部類,「baseWave」和「baseRate」是相應的可變參數。顯然,我在這裏所做的並不適合我。我相當新,所以很溫柔。

謝謝您可以提供任何幫助,這是非常讚賞:)

〜TG

+1

擴展應用程序,'MyApp擴展應用程序'並將變量存儲在那裏(或者在那裏引用的類中)。 – CamelCamelCamel 2012-03-12 01:54:06

回答

2

這是很好,它擊中了你,你可能有一個不好的設計,但它也應該打你你不認識Java,你有這個問題,因爲你不瞭解Java,而且一本好的Java書會幫助你。那麼,這是獲得你的工作嘗試的最短路徑:讓theGame在靜態成員中存儲對自身的引用;在代碼中使用靜態成員。

也就是說,

class TheGame { 
    public static TheGame theGame = null; 
    TheGame() { 
    theGame = this; 
    } 
} 

和其他地方:TheGame.theGame.baseWave = 10 * (position + 1);

或者,你可能需要把這樣:

public class TheGame extends Activity { 
    public static TheGame theGame = null; 

    @Override 
    public void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    theGame = this; 
    } 
} 

一個優秀的Java書形容這樣的事情給你,給你一個名字,並警告你遠離它。

+0

非常感謝!這正是我所期待的。我是德夫。考慮購買一本好書(因爲在大多數情況下,我只知道足夠的java可用)。你有任何建議嗎?非常感謝! 〜TG – 2012-03-13 00:19:13