metzgore
Ensign
- Registriert
- Sep. 2011
- Beiträge
- 179
Hallo an alle,
ich programmiere zur Zeit eine Notiz-App. Es gibt eine Funktion, um eine ausgewählte Notiz zu markieren / zu highlighten. Dafür habe ich in der SQLite-Datenbank ein Integer-Feld, das entweder mit 0 (nicht highlighten) oder 1 (highlighten) belegt sein kann. Über die Markierungsfunktion werden die Werte auch korrekt in der DB geändert.
Allerdings spielt die Anzeige nicht mit. Die Notizen werden in einer Liste angezeigt. Um die Markierung nun anzeigen zu lassen, habe ich mir einen eigenen CursorAdapter geschrieben. Hier mal der relevante Code, anhand dessen entschieden wird, ob eine Notiz markiert wird, oder nicht:
Der Code sollte auch ohne Probleme funktionieren, die ausgewählte Zeile wird markiert. Allerdings wird auch die erste Zeile markiert, obwohl in der Datenbank eine 0 für die erste Zeile eingetragen ist.
Im Beispielbild habe ich Zeile 3 über das Kontextmenü markiert und gleichzeitig wurde Zeile 1 auch markiert.
Ich kann den Fehler einfach nicht finden. Habt ihr vielleicht einen Tip?
ich programmiere zur Zeit eine Notiz-App. Es gibt eine Funktion, um eine ausgewählte Notiz zu markieren / zu highlighten. Dafür habe ich in der SQLite-Datenbank ein Integer-Feld, das entweder mit 0 (nicht highlighten) oder 1 (highlighten) belegt sein kann. Über die Markierungsfunktion werden die Werte auch korrekt in der DB geändert.
Allerdings spielt die Anzeige nicht mit. Die Notizen werden in einer Liste angezeigt. Um die Markierung nun anzeigen zu lassen, habe ich mir einen eigenen CursorAdapter geschrieben. Hier mal der relevante Code, anhand dessen entschieden wird, ob eine Notiz markiert wird, oder nicht:
Code:
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView title = (TextView) view.findViewById(R.id.titleRow);
String titleText = cursor.getString(ciTitle);
TextView date = (TextView) view.findViewById(R.id.date);
String dateText = cursor.getString(ciDate);
String formattedDate = formatDateTime(context, dateText);
boolean noteHighlighted = (cursor.getInt(ciNoteHighlighted) == 1) ? true
: false;
title.setText(titleText);
date.setText(formattedDate);
if (noteHighlighted) {
title.setTypeface(null, Typeface.BOLD);
title.setTextColor(title.getContext().getResources()
.getColor(R.color.highlightColor));
date.setTypeface(null, Typeface.BOLD);
date.setTextColor(date.getContext().getResources()
.getColor(R.color.highlightColor));
}
}
Der Code sollte auch ohne Probleme funktionieren, die ausgewählte Zeile wird markiert. Allerdings wird auch die erste Zeile markiert, obwohl in der Datenbank eine 0 für die erste Zeile eingetragen ist.
Im Beispielbild habe ich Zeile 3 über das Kontextmenü markiert und gleichzeitig wurde Zeile 1 auch markiert.
Ich kann den Fehler einfach nicht finden. Habt ihr vielleicht einen Tip?
Anhänge
Zuletzt bearbeitet: