Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Android-Developers. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »oldwarrior« ist männlich
  • »oldwarrior« ist der Autor dieses Themas

Beiträge: 54

Modell: Asus Slider

Android: 4.0

Level: 23 [?]

Erfahrungspunkte: 49 205

Nächstes Level: 62 494

  • Private Nachricht senden

1

30.01.2012, 19:49

SQL Daten in einem Fragment ausgeben

Hallo,

da ich noch ein blutiger Anfänger in der Android Programmierung bin und ich seit einiger Zeit an einem Problem
in meiner APP fest hänge. Möchte ich hier ein Frage in die Runde stellen.
Ich versuche Daten aus meiner Datenbank in ein View in einem Fragment auszugeben. Leider bisher erfolglos.

Quellcode

1
2
3
4
5
6
7
8
9
myDB = this.openOrCreateDatabase(MKMSActivity.MY_DB_NAME, MODE_PRIVATE, null);
    	
    	Cursor c = myDB.rawQuery("SELECT _id, notiz , kundenname , kundennummer , datum , bearbeitet FROM " + MKMSActivity.MY_DB_NOTIZEN_TABLE + " ORDER BY datum and kundennummer" + ";", null);   // " WHERE _id = 3" + 	
    	
    	startManagingCursor(c);	

    	SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.notizenkomplett, c, new String[] { "_id" }, new int[] { R.id.text1 });
  	
  


Dieser Code läuft Problemlos in einer ListActivity aber nicht in meiner Fragment Klasse.

Quellcode

1
public class NotizenHistorieFragment extends ListFragment 


Ich vermute es hat was mit dem Context zu tun. Bin mir aber nicht sicher und habe auch keine Lösung. ;(

Bitte dringend um Hilfe. Wenn ihr mehr Infos benötigt dann nur nachfragen.

Gruß

Renato

titus

Android-Entwickler

Beiträge: 541

Level: 35 [?]

Erfahrungspunkte: 815 863

Nächstes Level: 824 290

Danksagungen: 109

  • Private Nachricht senden

2

30.01.2012, 20:30

Hi oldwarrior,

was sagt denn die LogCat?

mfg Titus

  • »oldwarrior« ist männlich
  • »oldwarrior« ist der Autor dieses Themas

Beiträge: 54

Modell: Asus Slider

Android: 4.0

Level: 23 [?]

Erfahrungspunkte: 49 205

Nächstes Level: 62 494

  • Private Nachricht senden

3

30.01.2012, 20:40

Hallo Titus,

ich bekomme die Klasse ja nicht durch den debugger.
Ich habe bereits eine komplett neue Klasse geschrieben mit Zugriff auf meine Datenbank.
Aber sobald ich dort den Cursor für dei Datenbank ertelle erhalte ich einen Fehler in der XML Datei.
Dort steht dieses

Quellcode

1
 <fragment
Wie gesagt den Code für die Ausgabe der SQL Daten,funktioniert
in einer anderen ListActivity Klasse. Die Ausgabe in den Fragments funktionieren auch aber nur mit einer
selbsterstellten Stringlist. Hier das Beispiel:

Quellcode

1
2
3
4
5
6
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
				"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
				"Linux", "OS/2" };
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
				android.R.layout.simple_list_item_1, values);
		setListAdapter(adapter);


Gruß Renato

Anzeige

titus

Android-Entwickler

Beiträge: 541

Level: 35 [?]

Erfahrungspunkte: 815 863

Nächstes Level: 824 290

Danksagungen: 109

  • Private Nachricht senden

4

30.01.2012, 21:06

Hi oldwarrior,

ich vermute deine Vermutung ist richtig.

und zwar

Quellcode

1
.openOrCreateDatabase();
ist eine Methode der Klasse Context.
Die Klasse ListActivity ist eine "Unterklasse" der Klasse Context und erbt damit auch openOrCreateDataBase(). Deshalb funktioniert auch dein Code in der ListActivity.

Die Klasse ListFragment erbt aber nun nicht von Context also dürfte die Methode .openOrCreateDatabase(); nicht gehen.

Wie gesagt es ist nur eine Vermutung, ich kann dir nicht zu 100% sagen das das dein Fehler ist.

mfg Titus

  • »oldwarrior« ist männlich
  • »oldwarrior« ist der Autor dieses Themas

Beiträge: 54

Modell: Asus Slider

Android: 4.0

Level: 23 [?]

Erfahrungspunkte: 49 205

Nächstes Level: 62 494

  • Private Nachricht senden

5

30.01.2012, 21:28

Hallo Titus,

danke das du dich an der Lösung meines Problems versuchst.
Es kann eigentlich auch nicht so schwer sein. Das ListFragment soll ja dazu dienen,
auch Daten aus einer Datenbank auszugeben. Die Frage ist nur wie?
Wie kann ich denn noch anders auf meine SQL Daten zugreifen?

Gruß Renato

titus

Android-Entwickler

Beiträge: 541

Level: 35 [?]

Erfahrungspunkte: 815 863

Nächstes Level: 824 290

Danksagungen: 109

  • Private Nachricht senden

6

30.01.2012, 22:23

hi oldwarrior,

versuch mal ob das hier geht:

Quellcode

1
getActivity().getAppliactionContext()


getActivity könnte gehen da es auch hier vorkommt

mfg Titus

Anzeigen
  • »oldwarrior« ist männlich
  • »oldwarrior« ist der Autor dieses Themas

Beiträge: 54

Modell: Asus Slider

Android: 4.0

Level: 23 [?]

Erfahrungspunkte: 49 205

Nächstes Level: 62 494

  • Private Nachricht senden

7

30.01.2012, 23:08

Hallo Titus,

es klappt wunderbar.
Hier mal der Code dafür.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
myDB = getActivity().openOrCreateDatabase(MKMSActivity.MY_DB_NAME, MKMSActivity.MODE_PRIVATE, null);
	
		List<String> list = new ArrayList<String>();
		Cursor cursor = myDB.rawQuery(
				"SELECT notiz FROM "
						+ MKMSActivity.MY_DB_NOTIZEN_TABLE + ";", null);
		if ((cursor).moveToFirst()) {
			do {
				list.add(cursor.getString(0));
			} while (cursor.moveToNext());
		}
		if (cursor != null && !cursor.isClosed()) {
			cursor.close();
		}
   	
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
				android.R.layout.simple_list_item_1, list);
		setListAdapter(adapter);


großes Dankeschön,

Gruß Renato

Thema bewerten

Highlights

Android Jobbörse

Interessante Job Angebote

Jetzt Job Anzeige schalten und den richtigen Mitarbeiter finden! Klicken Sie hier um mehr zu erfahren.

Social-Media