Динамически изменить цвет текста текстового просмотра внутри ListView?

StackOverflow https://stackoverflow.com/questions/4220547

Вопрос

Я пытаюсь создать игровое лобби для проекта, и я хотел бы, чтобы текст статуса игры быть другим цветом: красный для игры «[в прогрессе]» и зеленый цвет для игры, которая «[ждать x игроков ] " ListView будет заполнен данными, и каждый элемент ListView будет иметь идентификатор игры, а затем немедленно справа от этого статуса игры.

Прямо сейчас я в основном использую код Hello ListView для создания моего listView.

(В конструкторе)

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

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

Затем у меня есть кнопка обновления, которая получает данные из нашей базы данных. Это получит две строки, один для ID игры, а другой для статуса игры. Если статус игры 0, то он все еще ждет игроков. Если игровой статус 1, то игра началась. Итак, я создаю GameItem, чтобы добавить в 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]";
    }
}

Это где я застрял. Я не очень понимаю, как я могу изменить конкретный текстовый просмотр, когда я создаю грифтем или когда добавляю это в Gameist. Там не так, как я могу видеть доступ к свойствам TextView. Я вижу, как установлен текст представления (через сопоставление струн до «Line1» и «Line2», но я не знаю, как изменить какие-либо из свойств.

Спасибо за любую помощь!

Это было полезно?

Решение 2

Правильный ответ на этот вопрос - следовать одному из множества учебников на пользовательских строках ListView, а также с помощью пользовательского адаптера для вашего listView. Вот хороший.

Другие советы

Вы создаете свой TextView в файле XML? Если так, попробуйте:

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

надеюсь, это поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top