Question

Je suis en train de créer un lobby de jeu pour un projet, et je voudrais le texte d'état du jeu pour être une couleur différente: rouge pour un jeu « [EN COURS] » et vert pour un jeu qui est « [Waiting pour les joueurs x] ». Le ListView sera peuplé de données, et chaque élément ListView aura un ID de jeu, puis immédiatement à droite de ce statut de jeu.

En ce moment je suis essentiellement en utilisant le code Bonjour ListView pour créer mon ListView.

(dans le constructeur)

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

Alors, j'ai un bouton de rafraîchissement qui permet d'obtenir des données de notre base de données. Il obtiendra deux cordes, l'un pour l'ID du jeu, et l'autre pour l'état du jeu. Si l'état du jeu est 0, alors il attend encore pour les joueurs. Si l'état du jeu est 1, le jeu a commencé. Alors, je crée un gameitem à ajouter à la liste de jeux:

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

est où je suis coincé. Je ne comprends pas vraiment comment je peux modifier la TextView spécifique lorsque je crée le gameitem ou quand j'ajouter que la liste de jeux. Il n'y a pas une manière que je peux voir d'accéder aux propriétés du TextView. Je vois comment le texte de la vue est définie (par la mise en correspondance des chaînes à « ligne1 » et « line2 », mais je ne sais pas comment changer aucune des propriétés.

Merci pour toute aide!

Était-ce utile?

La solution 2

La bonne réponse à cette question est de suivre l'un des nombreux tutoriels là-bas sur les lignes de ListView personnalisé, et en utilisant un adaptateur personnalisé pour votre ListView. est bon.

Autres conseils

Avez-vous créer votre textview dans le fichier XML? si oui essayez:

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

espoir qui aide

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top