Frage

Ich versuche, eine Spiel-Lobby für ein Projekt zu erstellen, und ich würde das Spiels des Statustext wie eine andere Farbe zu sein: für ein „[IN PROGRESS]“ Spiel und grün für ein Spiel rot, dass die „[Waiting für x Spieler]“. Das Listview wird mit Daten gefüllt werden, und jedes Listview-Element wird ein Spiel-ID und dann sofort rechts von, dass das Spiel des Status.

Im Moment bin ich im Wesentlichen des Hallo Listview-Code mit meinem Listview erstellen.

(im Konstruktor)

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

Dann habe ich eine Refresh-Button, dass Ermittelt Daten aus unserer Datenbank. Es wird zwei Strings, eine für die ID des Spiels bekommen, und die andere für den Status des Spiels. Wenn der Spielstatus 0 ist, dann wartet er immer noch für die Spieler. Wenn das Spiel Status 1 ist, dann hat das Spiel begonnen. So erstelle ich eine gameItem zum Gamelist hinzuzufügen:

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

Dies ist, wo ich bin stecken. Ich verstehe wirklich nicht, wie ich die spezifische Textview verändern kann, wenn ich die gameItem erstellen oder wenn ich hinzufügen, dass auf den Gamelist. Es gibt keine Art, wie ich die Textview ist der Zugriff auf Eigenschaften zu sehen. Ich sehe, wie der Text der Ansicht (durch die Zuordnung der Strings „line1“ gesetzt ist und „line2“, aber ich weiß nicht, wie eine der Eigenschaften zu ändern.

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung 2

Die richtige Antwort auf diese Frage ist eine der vielen Tutorials gibt auf benutzerdefinierten Listview-Zeilen zu folgen und einen benutzerdefinierten Adapter für Ihre Listview verwenden. Hier gut.

Andere Tipps

Erstellen Sie Ihre Textview in der XML-Datei? wenn ja versuchen:

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

Hoffnung, die

hilft
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top