Values.put Problem

  • 7 Antworten
  • Letztes Antwortdatum
M

MattthiasB

Neues Mitglied
0
Hallo Zusammen,

ich fange gerade erst an mit der Programmierung in Android. Ich habe ein vorhandenes Beispiel ein wenig geändert und komme nun nicht weiter.

Es geht darum in eine Datenbank 3 Werte zu speichern.

ID , Zeit , Ereignis.

Solange ich nur die ID und Zeit in der Tabelle speichern möchte klappt das soweit auch. Soll nun aber das Ereignis in einer Spalter der Tabelle gespeichert werden bekomme ich die Meldung:

The app... may be doing too much work on i ts main thread

Hier mal der Codeausschnitt - hat jemand eine Idee?

Vielen Dank und viele Grüße Matthias

Code:
private void erstellenNeueListe() {

		String name = TextViewZeitstempel.getText().toString();
		String ereignis = editEreignis.getText().toString();
		//String resultat = name + " " + ereignis;
		
		ContentResolver cr = getContentResolver();
		
		ContentValues values = new ContentValues();
		values.put(Liste.Columns.NAME, name);
		values.put(Liste.Columns.EREIGNIS, ereignis);
		
		Uri neuerEintrag = cr.insert(Liste.Content_URI, values);
 
Die Fehlermeldung sagt doch schon alles.

Evtl zu viel Arbeit im Main bzw UI-Thread.
Also das ganze mit einem AsyncTask machen
AsyncTask | Android Developers

Aber sollte doch trotzdem funktionieren oder dauern deine Datenbank einträge wirklich zu lang?
 
Kann ich mir irgendwie nicht vorstellen das es so lange dauert ... Aber ich für mich packe alles in ein Thread, also ist nicht verkehrt wenn du dir das gleich angewöhnst ...
 
Hey,

danke für die Antworten. Ich denke ich hab das Problem gefunden aber noch nicht gelöst.

Beim erzeugen der DB wird die Spalte erst gar nicht angelegt, folglich soll etwas in eine nicht existierende Spalte geschrieben werden. Denke das löst den Fehler aus.

Nur eigentlich habe ich eine 2. Spalte angelegt...

Code:
public static final String CREATE_TABLE = 
			"create table "+TABLE_NAME+"( "+
			Columns._ID  + " integer primary key autoincrement, "+
			Columns.NAME + " text "+
			Columns.EREIGNIS + " text "+
			")";

Nur jetzt frage ich mich ob die eine Zeile Code hier reicht um eine weitere Spalte der Tabelle zu erzeugen?

Gruß
 
Ich glaube nicht, wenn die Tabelle schon existiert.
Da musst du mit ALTER TABLE die Tabelle ändern meine ich.
Oder du machst vorher ein Drop Table und wirfst die vorhandene erst mal weg.
 
Hey,

ich habe die Datenbank komplett gelöscht, diese wird mit Start der App erst angelegt. Von daher müsste es klappen, aber es tut sich nüx
:(
 
Kann es sein, dass da ein Komma fehlt hinter dem ersten "text" ?
 
Hey,

ja das war das Problem. Was so ein fehlendes Komma so alles bewirkt... :(

Vielen Dank.
 
Zurück
Oben Unten