Domanda

Sto cercando di creare una lobby di gioco per un progetto e vorrei che il testo dello stato del gioco fosse di un colore diverso:rosso per una partita "[IN CORSO]" e verde per una partita "[In attesa di x giocatori]".Il ListView verrà popolato con i dati e ogni elemento ListView avrà un ID di gioco e quindi immediatamente a destra lo stato del gioco.

In questo momento sto essenzialmente utilizzando il codice Hello ListView per creare il mio ListView.

(Nel costruttore)

ArrayList<HashMap<String, String>> gameList = new ArrayList<HashMap<String, String>>();
private ListView gamesListView;
private SimpleAdapter gameItems.

(In onCreate())

gamesListView = (ListView) findViewById(R.id.listViewGames);
gameItems = new SimpleAdapter(this, gameList, R.layout.gamelistitem, 
    new String[] { "line1, "line2}, 
    new int[] { R.id.tvGameID, R.id.tvGameStatus });
gamesListView.setAdapter(gameItems);

Quindi, ho un pulsante di aggiornamento che ottiene i dati dal nostro database.Riceverà due stringhe, una per l'ID del gioco e l'altra per lo stato del gioco.Se lo stato del gioco è 0, significa che sta ancora aspettando i giocatori.Se lo stato del gioco è 1, il gioco è iniziato.Quindi, creo un gameItem da aggiungere alla gameList:

HashMap<String, String> gameItem = new HashMap<String, String>();
gameItem.put("line1", gameIDString);
gameItem.put("line2", renderGameStatus(gameStatusString));
gameList.add(gameItem);
gameItems.notifyDataSetChanged();

private String renderGameStatus(String statusString) {
    if (statusString.equals("0")) {
        return "[Waiting for players]";
    } else {
        return "[IN PROGRESS]";
    }
}

Questo è dove sono bloccato.Non capisco davvero come posso modificare il TextView specifico quando creo il gameItem o quando lo aggiungo al gameList.Non riesco a vedere un modo per accedere alle proprietà di TextView.Vedo come è impostato il testo della vista (tramite la mappatura delle stringhe su "line1" e "line2", ma non so come modificare nessuna delle proprietà.

Grazie per qualsiasi aiuto!

È stato utile?

Soluzione 2

La risposta corretta a questa domanda è quello di seguire uno dei molti tutorial là fuori sulle righe ListView personalizzato, e l'utilizzo di un adattatore personalizzato per il vostro ListView. Ecco un buon compromesso.

Altri suggerimenti

Crei la tua visualizzazione di testo nel file XML?se è così prova:

TextView t = (TextView) findViewById(R.layout.yourTextView);
t.setTextColor(color);
t.setBackgroundColor(color);

Spero possa aiutare

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