Domanda

Ho un gioco in cui sto usando 12 pulsanti senza testo per visualizzare vite. Ogni volta che perdono una vita, questo codice viene eseguito

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;


    }

}

E il pulsante più a destra più lontano scompare (sono in linea, 1 a sinistra 12 a destra).

Tuttavia, quando inizio un nuovo gioco o quando si apre l'attività, questo codice viene eseguito

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

Ripetuto per ogni singolo ID. X essendo letteralmente qualsiasi colore (l'ho provato con un sacco di diversi). Per qualche motivo, se questo codice viene mai eseguito, il pulsante scompare. Come mai? Se non è in esecuzione, i 12 pulsanti appaiono, ma ogni volta che inizio un nuovo gioco ovviamente i pulsanti che sono scomparsi a causa della perdita di vite non tornano.

È stato utile?

Soluzione

Per il tuo compito è meglio usare findViewById(R.id.id).setVisibility(View.Invisible) per scomparire e "findViewById (R.id.id) .SetVisibility (View.Visible)" per la vista di ritorno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top