2013-04-23 72 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

相关问题