Das Stichwort ist im Falle eines SimpleXxxAdapter der ViewBinder - ansonsten machst Du das in Deinem Custom-Adapter. Im setViewValue des ViewBinder fließt vor dem Zeichnen jedes Feld einzeln rein und Du kannst dort eingreifen oder an die Standardverarbeitung weiterleiten
Ein Beispiel für einen SimpleCursorAdapter. Der Cursor lädt neben zwei Textfeldern zum Beispiel noch ein long mit der Bedingung. Diese Bedingung führt dann zum Markieren/Färben eines der Textfelder wenn der Wert 1 ist:
1select _id, text1, text2, dieBedingung from tabelle
1adapter = new SimpleCursorAdapter(this,
2 R.layout.row,
3 cursor,
4 new String[] { "text1", "text2" },
5 new int[] { R.id.row_text1, R.id.row_text2 } );
6if (adapter != null) {
7 adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
8
9 @Override
10 public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
11 if (view.getId() == R.id.row_text2) {
12 long dieBedingung = cursor.getLong(cursor.getColumnIndex(dieBedingung));
13 if (dieBedingung == 1) {
14 TextView textView = (TextView) view;
15 // Mach was Du willst
16 return true; // Ich habe selbst gezeichnet
17 }
18 }
19
20 return false; // Android, zeichne Du selbst
21 });
22
23 setListAdapter(adapter);
24}
— geändert am 07.10.2012, 10:24:27
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.