Städteführer App (Facharbeit)

Code:
Cursor klassencursor2 =Datenbank.query("SH", 
						new String[] {
							"_id",
							"name",
							"longitude",
							"latitude",
							"info"
						}, 
						null, null, null, null, null);
				startManagingCursor(klassencursor2); 
				klassencursor2.moveToFirst();
				SimpleCursorAdapter klassenadapter2 = new SimpleCursorAdapter (this, android.R.layout.simple_list_item_2,klassencursor2,
						new String[] {"longitude","latitude"},
						//new String [] {"name","info"},
						new int []{android.R.id.text1,android.R.id.text2}
						
				);
				setListAdapter(klassenadapter2);
			
				
				double latitude = Double.parseDouble(klassencursor2.getString(klassencursor2.getColumnIndex("latitude")));
				double longitude = Double.parseDouble(klassencursor2.getString(klassencursor2.getColumnIndex("longitude")));
				String sh = klassencursor2.getString(klassencursor2.getColumnIndex("name"));
				String info1 =klassencursor2.getString(klassencursor2.getColumnIndex("info"));
				 Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
				 Log.d("Guide", "Tesssssst "+""+location.getLatitude());

Sobald ich klassencursor2.moveToFirst(); benutze, kann ich nur die 1.Entfernung berechnen, ich kann auf den 2.klicken jedoch wird trotzdem die erste Entfernung berechnet, wie kann ich dem klassencursor sagen, dass er es von der bestimmten ID entnehmen soll?
 
  • Danke
Reaktionen: deni100
Tom299 schrieb:
Wenn du eine ListActivity benutzt schau dir halt mal die API an ListActivity | Android Developers

-> public int getSelectedItemPosition ()
Ich bekomme die aktuelle Position, das ich nicht das Problem, mein Problem ist eher dem Cursor nicht sagen zu können auf welcher Position er sein sollte.
Wie kann ich das dem Cursor vermitteln ,das meine ich
 
scroll mal hoch ... .moveToPosition(position)
 
Tom299 schrieb:
scroll mal hoch ... .moveToPosition(position)

So hab ich es auch gemacht, jedoch gibt er mir immer noch den gleichen Fehler.


Code:
  Log.d("Guide", "Test "+info.id);

Wenn ich das ausprobiere, kommt bei Logcat als Tag , dass ich auf der Position2 bin, jedoch wenn ich
Code:
.moveToPosition(info.id)
mache, will er erstmal einen Cast
Code:
 klassencursor2.moveToPosition((int) info.id);
und danach kriege ich die FEhlermeldung:


Code:
android.database.CursorIndexOutOfBoundsException: Index 1 requested, with a size of 1

Logcat
Code:
Tag "Guide" gibt = 02-16 14:43:18.824: D/Guide(30955): Test 2
aus
 
Was ist denn info.id? das klingt für mich eher nach menu item info. das hat aber mit der ListActivity nichts zu tun, oder zeigst du in deinem Menü alle DB Einträge an?

Mußt halt mal den Debugger anwerfen und schauen was da drin steht. Normal ist das 1. Item an der Stelle 0, das aber nichts mit der ID in der DB zu tun hat. Der 1. Datensatz im Cursor steht auch auf Position 0. Deswegen kann man normal die Position der Liste verwenden und hat dann auch die Cursor Position.
 
Tom299 schrieb:
Was ist denn info.id? das klingt für mich eher nach menu item info. das hat aber mit der ListActivity nichts zu tun, oder zeigst du in deinem Menü alle DB Einträge an?

Mußt halt mal den Debugger anwerfen und schauen was da drin steht. Normal ist das 1. Item an der Stelle 0, das aber nichts mit der ID in der DB zu tun hat. Der 1. Datensatz im Cursor steht auch auf Position 0. Deswegen kann man normal die Position der Liste verwenden und hat dann auch die Cursor Position.


Ich zeige im Menü alle Datenbankeinträge , das sieht so aus

scaled.php


info.id kriege ich die ID in der Datenbank. Der Cursor fängt doch bei -1 an oder nicht ?
 
Wie ich schon empfohlen habe, pfeif Dir erstmal dies Tutorial rein (alle Übungen) dauert nicht lange und ich glaube fast jede Deiner Fragen(bisherigen) wird darin beantwortet.
 

Ähnliche Themen

Manny87
  • Manny87
Antworten
11
Aufrufe
166
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
1.021
Robby1950
R
netfreak
  • netfreak
Antworten
10
Aufrufe
461
netfreak
netfreak
Zurück
Oben Unten