Hallo,
ich habe gleich mehrere Fragen, welche mich an ein Weiterkommen hindern. Ich fange einfach mal an:
Folgende Activity habe ich und die funktioniert auch, also die DB wird auch erstellt:
package de.android.tsdev.haushaltskasse;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class activity_user extends Activity {
DatabaseHelper dbHelper = new DatabaseHelper();
@Override
protected void onCreate(Bundle savedInstanceState) {
Button btn_user_save;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
btn_user_save = (Button)findViewById(R.id.btn_user_save);
btn_user_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveUser();
}
});
}
private void saveUser() {
//dbHelper.connect();
SQLiteDatabase dbHaushaltskasse;
dbHaushaltskasse = openOrCreateDatabase("Haushaltskasse.db", MODE_PRIVATE, null);
dbHaushaltskasse.execSQL("CREATE TABLE IF NOT EXISTS " + "User" +
" (_id integer primary key autoincrement, " +
"name varchar(100));");
}
}
Alles anzeigen
Null will ich das aber alles ein wenig sauberer machen und dachte mir, ich lager die DB-Zugriffe in eine extra Klasse aus, habe ich hier:
package de.android.tsdev.haushaltskasse;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
public class DatabaseHelper extends Activity {
private SQLiteDatabase dbHaushaltskasse;
private String DB_NAME = "Haushaltskasse.db";
private String TableUser = "User";
public void connect() {
dbHaushaltskasse = openOrCreateDatabase(DB_NAME, MODE_PRIVATE, null);
dbHaushaltskasse.execSQL("CREATE TABLE IF NOT EXISTS " + TableUser +
" (_id integer primary key autoincrement, " +
"name varchar(100));");
}
}
Alles anzeigen
Und nun meine zwei Fragen:
1) Wieso muss die Klasse von "Activity" erben, damit sie sich kompilieren lässt? Ohne dem extends bekomme ich immer Fehler beim "openOrCreateDatabase" --> "cannot resolve method" und beim MODE_PRIVATE bekomme ich --> "cannot resolve symbol".
2) Mit dem "extends Activity" lässt sich das ganze zwar kompilieren, aber beim Aufruf von der Funktion "connect" wirft er in der Zeile "dbHaushaltskasse = openOrCreateDatabase(DB_NAME, MODE_PRIVATE, null);" eine NullPointerException.
Ich hoffe, ihr könnt mir da weiterhelfen, da ich gerade gar nicht mehr weiterkomme.
Vielen Dank schonmal und liebe Grüße
Thomas