GridView eine Zeile einfärben

  • Antworten:2
Ralf S.
  • Forum-Beiträge: 420

17.05.2010, 09:11:37 via Website

Hallo Liebes Dev Forum, Hallo Jack
Ich habe folgendes Problem:
ich fülle ordentlich eine Gridview die Anzeige funzt auch wie gewünscht.
nun möchte ich nach dem befüllen verschiedene Zeilen in abhängigkeit bestimmter Werte einfärben
wie komme ich denn an einzelen Zeilen heran? wie kann ich eine Zeile zurückbekommen und deren Background mit einer Farbe versehen?

Danke
Gruß
Hr. S.

Good Day (Mitglied Nr. 19.869)

Antworten
Patrick S. Vogt
  • Forum-Beiträge: 1

18.05.2010, 22:22:08 via Website

Hi

Getestetet habe ich es nur mit den ListView (i.e.extends ListActivity ) und SimpleCursorAdapter, aber gemäss http://developer.android.com/reference/android/widget/GridView.html sollte es mit den GridView identisch funktionieren.

Hier Code Fragemente für ein DB ListView:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(....);

adapter.setViewBinder(new ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if (cursor == null) {
return false;
}
if (columnIndex == MY_INDEX) {
Day d = new Day(cursor);
int color = Color.GREEN;
if (d.isError()) {
color = Color.RED;
}
TextView errorView = (TextView) view.findViewById(R.id.TextViewError);
errorView.setTextColor(color);
errorView.setBackgroundColor(color);
}
return false;
}
});

setListAdapter(adapter);

Bei nicht DB Adaptoren wird alles ein wenig komplizierter, aber ich vermute getView(int position, View convertView, ViewGroup parent) und getItemId(int position) aus http://developer.android.com/reference/android/widget/Adapter.html helfen Dir dann weiter.

gp

Antworten
Ralf S.
  • Forum-Beiträge: 420

21.05.2010, 08:33:25 via Website

Hallo
Habe jetzt meine App auf Listview umgestellt und so gemacht das der letzte Listeintrag farblich hinterlegt wird (weil der das aktuelle datum beinhaltet)
jedoch wird nicht nur der letzte Eintrag farblich markiert, sondern auch noch der erste...
das wundert mich schon sehr da dieser Listeintrag ein ganz anderes datum hat....
ich habe im VieBinder eine Abfrage ncch dem Datum eingebaut....
kann es sein das die gesammte Liste 2 mal durchlaufen wird? hat die Listview einen Bug?

Good Day (Mitglied Nr. 19.869)

Antworten