2013-04-23 28 views
0

所以,我有一個菜單活動,用戶可以選擇一個遊戲來玩。當他這樣做時,在遊戲中他可以選擇回到菜單(在背按或遊戲中的退出按鈕上)。當這種情況發生時,我需要禁用該遊戲按鈕,因此用戶無法再播放它。我怎樣才能做到這一點?如何禁用其他活動的按鈕?

我試圖從Menu類中創建一個對象,然後禁用該按鈕,但得到錯誤。也試過:

public void disableButton(){ 
     button.setEnabled(false); 
    } 

,然後調用它:

obj.disableButton 

,但我得到的,我創造了我的obj一旦我的菜單活動啓動線stactOverflow錯誤。這個怎麼做?

編輯:

在Menu類:

public void disableButton(){ 
     button.setEnabled(false); 
    } 

在遊戲類:

Menu objMenu = new Menu(); 

然後在退出onClickListener:

objMenu.disableButton(); 

EDIT2:

以下是我打電話給我的遊戲活動:

Intent i = new Intent(this, Game.class); 
      startActivityForResult(i, GAME); 

然後在遊戲活動:

Intent resp = new Intent(); 
       resp.putExtra("score", numberOfPoints); 
       setResult(1, resp); 
       finish(); 

而且又在Menu類:

final private static int AS = 1; 

@Override 
    protected void onActivityResult(int reqCode, int respCode, Intent i) { 
     if(respCode == 1) { 
      switch(reqCode) { 
       case AS: receivedA = i.getIntExtra("score", receivedA); 
       button.setEnabled(false); 
          break; 
} 

所以,這是我做的當遊戲結束時,我會成功禁用該按鈕。

+0

http://stackoverflow.com/que stions/10698485/enable-a-button-android-from-a-activity- – 2013-04-23 12:38:44

+0

在class1中創建一個方法,在該方法中,如果您不想使用intent,將禁用按鈕並從class2調用此方法 – techieWings 2013-04-23 12:39:24

+0

用' startActivityForResult'並在菜單活動中覆蓋'onActivityResult'。確保從遊戲活動中返回相應的結果。 – 2013-04-23 12:50:05

回答

0

我認爲這個問題不僅在button.setEnabled(false);。由於這是很難說有什麼是沒有看到代碼的細節問題,我建議另一種解決方案

  1. 開始從菜單活動使用startActivityForResult
  2. 的遊戲活動時,遊戲結束,在返回意圖把具體數據
  3. 在功能活動,在onActivityResult檢查,如果結果意圖有特定的數據
  4. 立足於第3步就可以啓用或禁用按鈕
+0

我這樣做是爲了完成比賽。但我需要禁用後退按鈕或退出按鈕上的按鈕,而不是在遊戲結束時。 – marjanbaz 2013-04-23 12:53:58

+0

當你按下退出按鈕時,它會不會完成遊戲? – stinepike 2013-04-23 12:55:09

+0

是的。我將編輯我的原始文章。檢查EDIT2。 – marjanbaz 2013-04-23 13:00:11

相關問題