Android Listen/Daten aus der SQLLite Datenbank darstellen

calmar

Mitglied
Hallo,

will meine erste app schreiben (einfache einkaufsliste). Obwohl daten in meiner sql-lite datenbank drinnen sind (hab mir die datenbank mit sql-liste studio angesehen), bleibt meine einkaufsliste leer.

Hier die relevanten codeteile:

layout fuer die liste:

die rows der liste:

[XML]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >



<TextView
android:id="@+id/name_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/product" />



<TextView
android:id="@+id/amount_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/amount" />


</LinearLayout>[/XML]


die liste selber:

[XML]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >



<TextView
android:id="@+id/name_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/product" />



<TextView
android:id="@+id/amount_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/amount" />


</LinearLayout>[/XML]

hier will ich die daten abfragen:

hab einfach mal die anfragen in rawQuery reinkopiert - in sql-lite studio werden mit den strings die gewünschten daten abgefragt

Java:
package shoppinglist.dao;

import java.sql.Date;
import java.sql.Timestamp;
import java.util.Calendar;

import shoppinglist.db.ShoppingListDatabaseHelper;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Toast;

public class ShoppingListDao extends Activity implements IShoppingListDao{
	
private ShoppingListDatabaseHelper dbHelper;
private SQLiteDatabase database;
private Context context;
private static final String TAG = "ShoppingListDao";
public static final String KEY_ROWID = "_id";
public static final String KEY_AMOUNT = "menge";
public static final String KEY_NAME = "produkt_name";
public static final String KEY_DONE = "erledigt";
public static final String KEY_TIMESTAMP = "datum_eingabe";
private static final String DATABASE_TABLE = "shoppinglist_item";
private int duration = Toast.LENGTH_SHORT;

	/**
 * @param context
 */
public ShoppingListDao(Context context) {
	this.context = context;
}

	public void delete(ShoppingListItem item) {
		// TODO Auto-generated method stub
		
	}

	public void update(ShoppingListItem item) {
		// TODO Auto-generated method stub
		
	}

	public void create(ShoppingListItem item) {

		ContentValues initialValues = createContentValues(item.getAmount(),item.getName(), item.isOpen());
		try{
			open();
			database.insert(DATABASE_TABLE, null, initialValues);
			CharSequence text = "Produkt wurde hinzugefügt!";
			Toast toast = Toast.makeText(context, text, duration);
			toast.show();
		}catch(SQLException sqlE){
			CharSequence text = "Produkt konnte nicht hinzugefügt werden!";
			Toast toast = Toast.makeText(context, text, duration);
			toast.show();
		}
		close(); 
	}

	private ContentValues createContentValues(int amount, String name, boolean open) {
		ContentValues values = new ContentValues();
		values.put(KEY_AMOUNT, amount);
		values.put(KEY_NAME, name);
		values.put(KEY_DONE, open);
		values.put(KEY_TIMESTAMP, new Timestamp((System.currentTimeMillis())).toString());
		
		return values;
	}

	public ShoppingListDao open() throws SQLException {
		dbHelper = new ShoppingListDatabaseHelper(context);
		database = dbHelper.getWritableDatabase();
		return this;

	}

	public void close() {
		dbHelper.close();
		
	}

	public Cursor fetchAllShoppingListItems() {
		open(); 
		Cursor cursor = database.rawQuery("select _id,  produkt_name, menge, erledigt from shoppinglist_item; ", null);
		close(); 
		return cursor; 
	}

	public Cursor fetchAllOpenShoppingListItems() {
		Cursor cursor = null;
		try{
			open();  
			cursor = database.rawQuery("select _id,  produkt_name, menge, erledigt from shoppinglist_item; ", null);
			close(); 
		}catch(Exception ex){
			CharSequence text = "Die Liste kann nicht erstellt werden!";
			Toast toast = Toast.makeText(context, text, duration);
			toast.show();
		}
		return cursor; 
	}
}

und meine view für die liste

Java:
package shoppinglist.ui;

import shoppinglist.dao.IShoppingListDao;
import shoppinglist.dao.ShoppingListDao;
import shoppinglist.main.R;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SimpleCursorAdapter;

public class ShoppingItemsListView extends ListActivity{
	IShoppingListDao shoppingListDao;
	private Cursor cursor;
	private Intent addIntent;


	OnClickListener addItem = new OnClickListener() {
		public void onClick(View v) {
			startActivity(addIntent);
		}
	};

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list_shopping);
		shoppingListDao = new ShoppingListDao(this);
		fillData();	

		addIntent = new Intent(this, ShoppingListNewEntry.class);
		Button buttonAdd = (Button) findViewById(R.id.addProduktToList);
		buttonAdd.setOnClickListener(addItem);

	}

	private void fillData() {
		cursor = shoppingListDao.fetchAllOpenShoppingListItems();
		startManagingCursor(cursor);
		String[] from = new String[] {ShoppingListDao.KEY_NAME,ShoppingListDao.KEY_AMOUNT};
		int[] to = new int[] { R.id.name_display, R.id.amount_display};
		SimpleCursorAdapter entries = new SimpleCursorAdapter(this,
				R.layout.list_shopping_row, cursor, from, to);
		this.setListAdapter(entries);
	}
}

Bitte um eure tipps!

Danke!
 

Bolle52

Aktives Mitglied
hast du schon mal durch debuggt? so kannst du sehen, ob der Fehler in dem View liegt oder ob du keine Daten aus der Datenbank bekommst.
 

calmar

Mitglied
hab den fehler mittlerweile gefunden - ich darf in der methode, die die daten ausliest die db nicht schließen - dachte, nachdem ich das ergebnis im curser habe darf ich das...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Firebase RealtimeDatabase - Daten aus Queries in CSV File speichern Android & Cross-Platform Mobile Apps 1
N XY-Plottet keine Daten obwohl Funktion ausgeführt wird Android & Cross-Platform Mobile Apps 4
N XY-Plot plottet keine Daten Android & Cross-Platform Mobile Apps 0
W Background Service Daten verarbeiten/Schleife ect. Android & Cross-Platform Mobile Apps 1
R Android Daten speichern und anzeigen Android & Cross-Platform Mobile Apps 7
MiMa Daten vom Brustgurt bekommen? Android & Cross-Platform Mobile Apps 3
ruutaiokwu Android Daten von "Activity A" nach "Activity B" umleiten? Android & Cross-Platform Mobile Apps 13
P Daten bzw Objekte auf das Handy lokal speichern Android & Cross-Platform Mobile Apps 29
W Android Browser startet immer, bevor die Daten dafür geholt wurden Android & Cross-Platform Mobile Apps 15
J Android Server-Login Daten in der App sicherer hinterlegen? Android & Cross-Platform Mobile Apps 7
T Firestore Daten in Spinner Android & Cross-Platform Mobile Apps 0
L Android Daten von Webseite runterladen, die mit HTTP-Authentifizierung gesichert ist Android & Cross-Platform Mobile Apps 5
B Accelerometer daten umwandeln Android & Cross-Platform Mobile Apps 41
S Android Apk Daten auslesen Android & Cross-Platform Mobile Apps 6
G Android Daten in einer Datenbank speichern Android & Cross-Platform Mobile Apps 1
ATZENPOWER Android Probleme mit mobilen Daten via lte Android & Cross-Platform Mobile Apps 10
S Android Studio MySql Daten in Listview mit sub Item Android & Cross-Platform Mobile Apps 11
A Android Daten in der Cloud speichern (Google) Android & Cross-Platform Mobile Apps 1
K Unbekannte Menge von Daten (Strings oder Ints) an Activity übergeben Android & Cross-Platform Mobile Apps 0
K Android SQLite Query "WHERE _id in (X, Y, Z)" keine Daten Android & Cross-Platform Mobile Apps 6
M Anzeigen der Daten dauert zu lange - Progressdialog? Android & Cross-Platform Mobile Apps 5
K Android DialogFragment mit SimpleCursorAdapter: Auf Daten zugreifen? Android & Cross-Platform Mobile Apps 4
S Daten aus Android Gerät auslesen Android & Cross-Platform Mobile Apps 3
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
B Alle Daten gehen verloren, wenn die Displaysperre aktiviert wird? Android & Cross-Platform Mobile Apps 21
M Daten zwischen mehreren Activities Android & Cross-Platform Mobile Apps 2
M Daten zwischen Activities übergeben Android & Cross-Platform Mobile Apps 7
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
G Wie gebe ich dem DrawView die Daten mit? Android & Cross-Platform Mobile Apps 2
V App Daten in Java Applikation Android & Cross-Platform Mobile Apps 3
D Android Daten verwalten Android & Cross-Platform Mobile Apps 2
S Android binäre Daten zwischen Android und einem Java-Server Android & Cross-Platform Mobile Apps 5
M Android Von Smartphone auf Daten von Server zugreifen Android & Cross-Platform Mobile Apps 2
L Android Einlesen und rausschreiben von Daten auf SD Android & Cross-Platform Mobile Apps 3
U Android Daten dauerhaft speichern? Android & Cross-Platform Mobile Apps 2
P Java ME benutzer daten speichern Android & Cross-Platform Mobile Apps 5
7 GPS-Daten auslesen auf Samsung SGH I900 Omnia Android & Cross-Platform Mobile Apps 3
X RMS - Will die Daten auf den PC kopieren Android & Cross-Platform Mobile Apps 3
B Daten in *.txt schreiben Android & Cross-Platform Mobile Apps 7
R Lesen und schreiben von Daten. Android & Cross-Platform Mobile Apps 2
K XDA Orbit: Auslesen der GPS Daten mit J2ME Android & Cross-Platform Mobile Apps 2
M Daten aus Jad-file auslesen Android & Cross-Platform Mobile Apps 2
O eingehende Daten speichern Android & Cross-Platform Mobile Apps 2
G merkwürdige Exception mit android und SQLLite Android & Cross-Platform Mobile Apps 18
X Unable to execute dex: Java heap space Exception bei Sqllite lib Android & Cross-Platform Mobile Apps 14

Ähnliche Java Themen

Neue Themen


Oben