0

所以,我有一个菜单活动,用户可以在那里选择要玩的游戏。当他这样做时,在游戏中他可以选择返回菜单(在 backPress 或游戏中的退出按钮上)。发生这种情况时,我需要禁用该游戏按钮,这样用户就不能再玩了。我怎样才能做到这一点?

我试图从 Menu 类中创建一个对象,然后禁用该按钮但出现错误。也试过:

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

然后调用它:

obj.disableButton

但是,一旦我的菜单活动开始,我就在创建我的 obj 的地方收到 stactOverflow 错误。这个怎么做?

编辑:

在菜单类中:

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

在游戏类中:

Menu objMenu = new Menu();

然后在退出 onClickListener:

objMenu.disableButton();

编辑2:

以下是我如何称呼我的游戏活动:

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

所以,这就是我在游戏结束时所做的,我成功地禁用了那个按钮。

4

1 回答 1

0

我认为问题不仅在button.setEnabled(false);. 由于没有看到代码的详细信息就很难说是什么问题,我建议另一种解决方案

  1. 使用 startActivityForResult 从菜单活动开始游戏活动
  2. 游戏结束时,在返回意图中放一个特定的数据
  3. 在菜单活动中,在 onActivityResult 检查结果意图是否具有特定数据
  4. 根据第 3 步,您可以启用或禁用按钮
于 2013-04-23T12:51:43.130 回答