Android Cursor hilfe

A

ageofempires

App-Anbieter (kostenlos)
8
Hallo zusammen, ich hole n Spalten aus einer Datenbank. Die Spalten bekomme ich als String array. Bis hier hin klappt alles problemlos, aber wenn ich den inhalt auslesen möchte klappt es leider nicht, die schleife bleibt einfach stehen der logger gibt mir nichts zurück, wenn ich nur eine Spalte übergbe klappt es, was mache ich verkehrt ?


Vielen Dank für eure hilfe :)

Code:
		Cursor temp = cursorSelect;
		
		for(String columName : columNames)
		{

			Log.d("SpaltenameVor", columName);
			do{ 
				Log.d("Data",cursorSelect.getString(cursorSelect.getColumnIndex(columName))   );
				selectData.add(cursorSelect.getString(cursorSelect.getColumnIndex(columName))    );
			Log.d("Data",cursorSelect.getString(cursorSelect.getColumnIndex(columName))   );
			}while(cursorSelect.moveToNext());
			
			cursorSelect = temp;
			Log.d("SpaltenameNach", columName);
		}
 
Cursor.movetofirst hast du gemacht?

Gesendet von meinem Nexus 5 mit der Android-Hilfe.de App
 
swordi schrieb:
Cursor.movetofirst hast du gemacht?

Ja mach ich , hier in dem stück
Code:
	 int list_count = cursorSelect.getCount();

		if((list_count - maxData) > 0)
			cursorSelect.moveToPosition(list_count - maxData);
		else
			cursorSelect.moveToPosition(0);
 
Paar mehr Details wären schön :)

Was meinst du mit:

"die schleife bleibt einfach stehen der logger gibt mir nichts zurück"

1. Weist du das die Schleife stehen bleibt oder kommt sie gar nicht zum Einsatz?

2. Der logger gibt nichts zurück oder wird er gar nicht ausgeführt?


Ich vermute du möchtest deinen Cursor mehrmals durchlaufen und hast deshalb den Workaround mit dem "temp" eingeführt? Im Prinzip brauchst du das nicht. Du kannst mit dem Cursor navigieren wie du magst und deine Daten gehen auch nicht verloren:

Code:
String columnValue;
	for(String columName : columNames){

		Log.d("SpaltenameVor", columName);
		while(!cursorSelect.isAfterLast()){ // Keine Do-While weil dein Cursor leer sein könnte.
                    columnValue= cursorSelect.getString(cursorSelect.getColumnIndex(columName));
	             Log.d("Data", columnValue));
		     selectData.add(columnValue)    );
	             cursorSelect.moveToNext();
		}
			
		cursorSelect.moveToFirst();
		Log.d("SpaltenameNach", columName);
		}

Also so in der Art. Wenn dein Cursor an einer bestimmten Zeile beginnen soll ( entnehme ich mal der if-Anweisung) dann speicher die Zeile in einer Int-Variable und setz den Cursor auf diese Zeile zurück.
 
Zuletzt bearbeitet:

Ähnliche Themen

D
Antworten
17
Aufrufe
396
datNeMo
D
R
  • RudolfHagen
Antworten
1
Aufrufe
648
koje71
koje71
M
Antworten
4
Aufrufe
1.168
swa00
swa00
Zurück
Oben Unten