如何禁用其他活动的按钮?

时间:2013-04-23 12:35:03

标签: java android

所以,我有一个菜单活动,用户可以选择要玩的游戏。当他这样做时,在游戏中他可以选择返回菜单(在backPress上或在游戏中的Exit按钮上)。当发生这种情况时,我需要禁用该游戏按钮,这样用户就无法再次播放它。我怎么能这样做?

我尝试从Menu类创建一个对象,然后禁用该按钮但是出错。还尝试过:

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

然后调用它:

obj.disableButton

但是我在菜单活动开始后立即创建了我的obj,我得到了stactOverflow错误。怎么做?

编辑:

在菜单类中:

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();

再次在菜单类:

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;
}

所以,这就是我在游戏结束时所做的事情,并且我成功地禁用了该按钮。

1 个答案:

答案 0 :(得分:0)

我认为这些问题不仅存在于button.setEnabled(false);中。由于在没有看到代码细节的情况下很难说是什么问题,我建议另一个解决方案

  1. 使用startActivityForResult
  2. 从菜单活动开始游戏活动
  3. 当游戏结束时,在返回意图中输入特定数据
  4. 在菜单活动中,在onActivityResult中检查结果意图是否具有该特定数据
  5. 根据第3步,您可以启用或禁用按钮