0

ライフを表示するためにテキストが表示されていない12個のボタンを使用しているゲームがあります。彼らが命を失うたびに、このコードが実行されます

public void guessesRemainingDisplay(int numberOfGuesses) {

    int guessesRemaining;

    guessesRemaining = maximumGuesses + 1 - numberOfGuesses;

    switch(guessesRemaining) {

    case 1:

        findViewById(R.id.Guess1).setBackgroundColor(color.transparent);
        break;

    case 2:
        findViewById(R.id.Guess2).setBackgroundColor(color.transparent);
        break;

    case 3:
        findViewById(R.id.Guess3).setBackgroundColor(color.transparent);
        break;

    case 4:
        findViewById(R.id.Guess4).setBackgroundColor(color.transparent);
        break;

    case 5:
        findViewById(R.id.Guess5).setBackgroundColor(color.transparent);
        break;

    case 6:
        findViewById(R.id.Guess6).setBackgroundColor(color.transparent);
        break;

    case 7:
        findViewById(R.id.Guess7).setBackgroundColor(color.transparent);
        break;

    case 8:
        findViewById(R.id.Guess8).setBackgroundColor(color.transparent);
        break;

    case 9:
        findViewById(R.id.Guess9).setBackgroundColor(color.transparent);
        break;

    case 10:
        findViewById(R.id.Guess10).setBackgroundColor(color.transparent);
        break;

    case 11:
        findViewById(R.id.Guess11).setBackgroundColor(color.transparent);
        break;

    case 12:
        findViewById(R.id.Guess12).setBackgroundColor(color.transparent);
        break;


    }

}

そして、最も右にあるボタンが消えます(それらは一列に並んでおり、左に1つ、右に12つあります)。

ただし、新しいゲームを開始するとき、またはアクティビティが最初に開いたときに、このコードが実行されます

findViewById(R.id.Guess1).setBackgroundColor(color.X);

すべてのIDに対して繰り返されます。Xは文字通り任意の色です(私はさまざまな色で試してみました)。何らかの理由で、このコードを実行すると、ボタンが消えます。なんで?実行しない場合は12個のボタンが表示されますが、新しいゲームを開始するたびに、命を落としたために消えたボタンが戻ってこないことは明らかです。

4

1 に答える 1

1

あなたのタスクではfindViewById(R.id.id).setVisibility(View.Invisible)、消えるために使用し、ビューを戻すために'findViewById(R.id.id).setVisibility(View.Visible)'を使用することをお勧めします。

于 2012-01-14T14:40:18.737 に答える