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

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

だから、これは私がゲームの終了時に行うことであり、そのボタンを無効にすることに成功しました。

4

1 に答える 1

0

問題は だけではないと思いますbutton.setEnabled(false);。コードの詳細を見ないと何が問題なのかわかりにくいので、別の解決策を提案します

  1. startActivityForResult を使用してメニュー アクティビティからゲーム アクティビティを開始する
  2. ゲームが終了したら、リターンインテントに特定のデータを入れます
  3. メニュー アクティビティの onActivityResult で、結果のインテントにその特定のデータがあるかどうかを確認します
  4. ステップ3に基づいて、ボタンを有効または無効にすることができます
于 2013-04-23T12:51:43.130 に答える