2011-09-02 42 views
0

問題的第二部分制定者和獲得者的簡單使用?

感謝偉大的幫助迄今爲止.. 好,我已經取得了進展,但仍東西是不正確的。 我SpaceWarz類如下:

public class SpaceWarz { 
    private boolean deePad; //access to this is restricted 
    public boolean getDeePad() 
    {  return this.deePad;  } 

    public void setDeePad(boolean value) 
    {  this.deePad = value;  } 
    } 

,它是愉快地與我分享值渲染課堂,我的代碼的散裝所在:

SpaceWarz sw = new SpaceWarz(); 
public void LoadGameSettings(){ 
    sw.setDeePad(_dPad); // send value to SpaceWarz class 
    _dPad = sw.getDeePad(); // get value from SpaceWarz class 
} 

但值不是從我的onCreate方法獲得通過在另一個班級。遊戲數據被加載在onCreate方法和保存的onDestroy所以這是一個問題,如果我不能再發送這些數據:

SpaceWarz sw = new SpaceWarz(); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

// SET SHARED DATA 
      _dPad = true; // debug value to be removed. 
      sw.setDeePad(_dPad); 
// SET SHARED DATA   
        } 

任何想法如何把這個權利?

< --snip - >

問題的第一部分

需要用getter和setter方法一些非常基本的幫助。我試圖在包含我的onCreate方法的類和包含我的主代碼的類之間移動數據,以便在我的應用程序啓動和停止時加載和保存遊戲設置。我試圖使用Bundles,但有人建議使用setters和getters會更簡單。

我已經創建了一個名爲SpaceWarz第三類:

package com.clockworkrobot.spacewarz; 

public class SpaceWarz { 

    private boolean deePad; //access to this is restricted 

    public boolean getDeePad() 
    {  return this.deePad;  } 

    public void setDeePad(boolean value) 
    {  this.deePad = value;  } 

    } 

我是設置這一權利,任何人都可以勾勒正是我的設置,並從我的其他類的價值,我沒有得到語法右導致飛機墜毀:(

感謝您抽空看看。

+0

語法真的沒有錯誤......當你實例化你的SpaceWarz類時,你的get和set將會起作用。您遇到什麼類型的錯誤? –

+0

我已經添加了一些信息。我沒有得到現在的崩潰,但值沒有被採用從我的onCreate方法:( – MarbleMad

回答

1

我不完全理解這個問題,但使用這些setter和你寫的干將,你必須有地方創建一個SpaceWarz對象你的代碼。

SpaceWarz sw = new SpaceWarz(); 

然後你可以調用它的setter或者getter方法。

if (sw.getDeePad()) 
{ 
    //do something 
} 

sw.setDeePad(false); 
+0

謝謝。我只是想在類之間傳遞一些值,所以我正在寫的遊戲將保留其設置設置..我很很少有經驗編程,但已經設法組合了一個相當複雜的小應用程序,這個小細節給我帶來了很多麻煩,缺乏我認爲的基礎知識。如果在那裏得到。我該如何恢復我的布爾值? – MarbleMad

+0

OH沒關係我得到它..我正在尋找這個:\t _dPad = sw.getDeePad();它的工作原理非常漂亮。感謝Timulus和dispake。你剛剛打破了一直困擾着我的WEEKS的概率! – MarbleMad

+0

GAH!必須太好以至於不真實。確定它半工作..任何想法,爲什麼它無法從我的onCreate方法獲取值? – MarbleMad

1

很難理解你想要做什麼。但是getters/setter就像聽起來那麼簡單。這是一個如何工作的小例子。

public class MainClass() { 

    public static void main(String [] args) { 

     SpaceWarz game = new SpaceWarz(); 
     game.setDeePee(true); 

     if (game.getDeePee()) // if true 
      game.setDeePee(false); // turn off 
    } 
} 
+0

謝謝。我已經得到了其他代碼snippit的一半工作(這或多或少是完全相同的東西,我認爲?)但我重新編輯我的帖子來解釋進一步的順利:) – MarbleMad

+0

難以遵循你的代碼範圍。無法判斷loadGameSettings()和onCreate()是否在同一個類中?如果是這樣,他們都應該有權訪問SpaceWarz sw的這個實例。如果不是,那麼您需要解決每個方法對SpaceWarz對象的引用或者將SpaceWarz實現爲單例。 – dispake