Pobieram z bazy danych moją wydajność pływania. Chciałbym zmienić kolor tła jednego pola zgodnie z jego wartością. Na przykład, jeśli pływam 4 okrążenia, chcę mieć kolor tła. Próbuję tego kodu, który poprawnie ustawia tło, ale tekst znika.Android - SimpleCursorAdapter.ViewBinder - Ustaw kolor tła
String[] columns = new String[] { "swimm_pos", "swimm_date","swimm_lap", "swimm_stroke", "swimm_time", "swimm_media", "swimm_efficiency", "swimm_note" };
int[] to = new int[] { R.id.row_counter, R.id.swimm_date, R.id.swimm_lap, R.id.swimm_stroke, R.id.swimm_time, R.id.swimm_medialap, R.id.swimm_efficiency, R.id.swimm_note};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this,
R.layout.contacto_list_item,
cursor,
columns,
to);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if (view.getId() == R.id.swimm_lap)
{
int color = cursor.getInt(columnIndex);
String s = String.valueOf(color);
if (s.equals("4")) {
TextView tv = (TextView)view;
tv.setBackgroundColor(0xFF558866);}
return true;
}
return false;}
});
i jest również możliwe, gdy lap jest równa 4 Ustaw kolor tła innej dziedzinie, na przykład w moim kodu: R.id.swimm_pos? dziękuję.
Dziękuję, Perfect. a na drugie pytanie można dodać coś takiego: TextView tv = (TextView) findViewById (R.modificacontatto.edswimm_pos); – lucignolo
Edytowałem odpowiedź, domyślam się, że po prostu zmieniając kolor, możesz zwrócić false zamiast ustawiania tekstu, ale jeśli to nie zadziała, będziesz musiał ustawić tekst też – nandeesh