Pregunta

Estoy tratando de crear una sala de juego para un proyecto, y me gustaría texto de estado del juego para ser de un color diferente: rojo para un "[en curso]" juego y verde para un juego que es "[Waiting para los jugadores x]". El ListView se rellena con datos, y cada elemento ListView tendrá un identificador de juego y luego inmediatamente a la derecha de ese estado del juego.

En este momento estoy usando esencialmente el código Hola ListView para crear mi ListView.

(En constructor)

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

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

A continuación, tengo un botón de actualización que obtiene datos de nuestra base de datos. Se obtendrá dos cadenas, una para el ID del juego, y el otro para el estado del juego. Si el estado del juego es 0, entonces se sigue a la espera para los jugadores. Si el estado del juego es 1, entonces el juego ha comenzado. Así, se crea un gameItem para añadir a la lista de juegos:

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

Aquí es donde estoy atascado. Realmente no entiendo cómo puedo alterar el TextView específica cuando se crea la gameItem o cuando añado que a la lista de juegos. No hay una manera de que pueda ver de acceder a las propiedades de la TextView. Veo cómo se establece el texto de la vista (a través de la asignación de las cuerdas a "línea 1" y "línea 2", pero no sé cómo cambiar cualquiera de las propiedades.

Gracias por cualquier ayuda!

¿Fue útil?

Solución 2

La respuesta correcta a esta pregunta es seguir uno de los muchos tutoriales que hay en las filas ListView costumbre y el uso de un adaptador personalizado para su ListView. Aquí es una buena.

Otros consejos

Cómo se crea el TextView en el archivo XML? si es así tratar:

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

esperanza que ayuda

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top