Johannes
- Forum-Beiträge: 49
07.11.2011, 23:41:35 via Website
07.11.2011 23:41:35 via Website
Hey Leute,
ich habe gerade versucht mir eine DB verbindung herzustellen... leider ohne erfolg, ich bekomm immer ne exception und das logcat bring mich auch net weiter.. vllt habt ihr ja ne idee!
das ist mein SQLiteOpenHelper
und so versuch ich dann ihn innerhalb von einem eigenen ArrayAdapter zu benutzen:
so noch die logCat ausgabe:
11-07 22:40:47.357: DEBUG/AndroidRuntime(467): Shutting down VM
11-07 22:40:47.366: WARN/dalvikvm(467): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
11-07 22:40:47.386: INFO/Process(52): Sending signal. PID: 467 SIG: 3
11-07 22:40:47.386: INFO/dalvikvm(467): threadid=7: reacting to signal 3
11-07 22:40:49.186: INFO/Process(467): Sending signal. PID: 467 SIG: 9
11-07 22:40:49.206: INFO/ActivityManager(52): Process com.AndroidTest1 (pid 467) has died.
11-07 22:40:49.206: INFO/WindowManager(52): WIN DEATH: Window{44d91468 com.AndroidTest1/com.AndroidTest1.actAdmin paused=false}
11-07 22:40:49.236: INFO/UsageStats(52): Unexpected resume of com.android.launcher while already resumed in com.AndroidTest1
11-07 22:40:49.276: WARN/InputManagerService(52): Got RemoteException sending setActive(false) notification to pid 467 uid 10028
vielen dank schomal!!
ich habe gerade versucht mir eine DB verbindung herzustellen... leider ohne erfolg, ich bekomm immer ne exception und das logcat bring mich auch net weiter.. vllt habt ihr ja ne idee!
das ist mein SQLiteOpenHelper
1package com.AndroidTest1;
2
3import android.content.Context;
4import android.database.sqlite.SQLiteDatabase;
5import android.database.sqlite.SQLiteOpenHelper;
6import android.util.Log;
7
8public class MyDBHelper extends SQLiteOpenHelper {
9 private static final String DATABASE_NAME = "dbShopper";
10 private static final String DATABASE_TABLE_ALL = "tbl_all";
11 private static final int DATABASE_VERSION = 1;
12
13 // Database creation sql statement
14 private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE_ALL +
15 "(_id INTEGER primary key autoincrement, " +
16 "anzahl INTEGER, " +
17 "einheit TEXT, " +
18 "beschreibung TEXT not null, " +
19 "preis REAL);";
20
21 public MyDBHelper(Context context) {
22 super(context, DATABASE_NAME, null, DATABASE_VERSION);
23 }
24
25 // Method is called during creation of the database
26 @Override
27 public void onCreate(SQLiteDatabase database) {
28 database.execSQL(DATABASE_CREATE);
29 }
30
31 // Method is called during an upgrade of the database, e.g. if you increase
32 // the database version
33 @Override
34 public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
35 Log.w(MyDBHelper.class.getName(),
36 "Upgrading database from version " + oldVersion + " to "
37 + newVersion + ", which will destroy all old data");
38 database.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_ALL);
39 onCreate(database);
40 }
41}
2
3import android.content.Context;
4import android.database.sqlite.SQLiteDatabase;
5import android.database.sqlite.SQLiteOpenHelper;
6import android.util.Log;
7
8public class MyDBHelper extends SQLiteOpenHelper {
9 private static final String DATABASE_NAME = "dbShopper";
10 private static final String DATABASE_TABLE_ALL = "tbl_all";
11 private static final int DATABASE_VERSION = 1;
12
13 // Database creation sql statement
14 private static final String DATABASE_CREATE = "create table " + DATABASE_TABLE_ALL +
15 "(_id INTEGER primary key autoincrement, " +
16 "anzahl INTEGER, " +
17 "einheit TEXT, " +
18 "beschreibung TEXT not null, " +
19 "preis REAL);";
20
21 public MyDBHelper(Context context) {
22 super(context, DATABASE_NAME, null, DATABASE_VERSION);
23 }
24
25 // Method is called during creation of the database
26 @Override
27 public void onCreate(SQLiteDatabase database) {
28 database.execSQL(DATABASE_CREATE);
29 }
30
31 // Method is called during an upgrade of the database, e.g. if you increase
32 // the database version
33 @Override
34 public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
35 Log.w(MyDBHelper.class.getName(),
36 "Upgrading database from version " + oldVersion + " to "
37 + newVersion + ", which will destroy all old data");
38 database.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_ALL);
39 onCreate(database);
40 }
41}
und so versuch ich dann ihn innerhalb von einem eigenen ArrayAdapter zu benutzen:
1package com.AndroidTest1;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import android.R.string;
7import android.app.Activity;
8import android.content.ContentValues;
9import android.database.Cursor;
10import android.database.SQLException;
11import android.database.sqlite.SQLiteDatabase;
12import android.view.LayoutInflater;
13import android.view.View;
14import android.view.View.OnClickListener;
15import android.view.ViewGroup;
16import android.widget.ArrayAdapter;
17import android.widget.CheckBox;
18import android.widget.TextView;
19import android.widget.Toast;
20
21
22
23public class CustomArrayAdapter extends ArrayAdapter<Model> {
24
25 // Database fields
26 public static final String KEY_ROWID = "_id";
27 public static final String KEY_ANZAHL = "anzahl";
28 public static final String KEY_EINHEIT = "einheit";
29 public static final String KEY_BESCHREIBUNG = "beschreibung";
30 public static final String KEY_PREIS = "beschreibung";
31 private static final String DATABASE_TABLE_NAME = "tbl_all";
32
33 private final List<Model> list;
34 public final Activity context;
35 private SQLiteDatabase database;
36 private MyDBHelper dbHelper;
37
38 public CustomArrayAdapter(Activity context, List<Model> list) {
39 super(context, R.layout.list_item, list);
40
41 try {
42 this.open();
43 } catch (Exception e) {
44 Toast.makeText(context, "db open fehler", 100);
45 }
46
47 //fillDB(list);
48 this.context = context;
49 this.list = list;
50 }
51
52 @Override
53 public View getView(int position, View convertView, ViewGroup parent) {
54 XXXX
55 }
56
57 public OnClickListener myClickListener = new OnClickListener()
58 {
59 public void onClick(View v)
60 {
61 create(20, "stk", "eier", 10); ///HIER BEKOMME ICH DEN FEHLER!!
62 }
63 };
64
65
66
67 //DB FUNCTIONS
68
69 public boolean open() throws SQLException {
70 dbHelper = new MyDBHelper(context);
71 database = dbHelper.getWritableDatabase();
72 return true;
73 }
74
75
76 public long create(int anzahl, String einheit, String beschreibung, float preis) {
77 ContentValues initialValues = createContentValues(anzahl, einheit, beschreibung, preis);
78
79 return database.insert(DATABASE_TABLE_NAME, null, initialValues);
80 }
81
82
83 private ContentValues createContentValues(int anzahl, String einheit, String beschreibung, float preis) {
84 ContentValues values = new ContentValues();
85 values.put(KEY_ANZAHL, anzahl);
86 values.put(KEY_EINHEIT, einheit);
87 values.put(KEY_BESCHREIBUNG, beschreibung);
88 values.put(KEY_PREIS, preis);
89
90 return values;
91 }
92}
2
3import java.util.ArrayList;
4import java.util.List;
5
6import android.R.string;
7import android.app.Activity;
8import android.content.ContentValues;
9import android.database.Cursor;
10import android.database.SQLException;
11import android.database.sqlite.SQLiteDatabase;
12import android.view.LayoutInflater;
13import android.view.View;
14import android.view.View.OnClickListener;
15import android.view.ViewGroup;
16import android.widget.ArrayAdapter;
17import android.widget.CheckBox;
18import android.widget.TextView;
19import android.widget.Toast;
20
21
22
23public class CustomArrayAdapter extends ArrayAdapter<Model> {
24
25 // Database fields
26 public static final String KEY_ROWID = "_id";
27 public static final String KEY_ANZAHL = "anzahl";
28 public static final String KEY_EINHEIT = "einheit";
29 public static final String KEY_BESCHREIBUNG = "beschreibung";
30 public static final String KEY_PREIS = "beschreibung";
31 private static final String DATABASE_TABLE_NAME = "tbl_all";
32
33 private final List<Model> list;
34 public final Activity context;
35 private SQLiteDatabase database;
36 private MyDBHelper dbHelper;
37
38 public CustomArrayAdapter(Activity context, List<Model> list) {
39 super(context, R.layout.list_item, list);
40
41 try {
42 this.open();
43 } catch (Exception e) {
44 Toast.makeText(context, "db open fehler", 100);
45 }
46
47 //fillDB(list);
48 this.context = context;
49 this.list = list;
50 }
51
52 @Override
53 public View getView(int position, View convertView, ViewGroup parent) {
54 XXXX
55 }
56
57 public OnClickListener myClickListener = new OnClickListener()
58 {
59 public void onClick(View v)
60 {
61 create(20, "stk", "eier", 10); ///HIER BEKOMME ICH DEN FEHLER!!
62 }
63 };
64
65
66
67 //DB FUNCTIONS
68
69 public boolean open() throws SQLException {
70 dbHelper = new MyDBHelper(context);
71 database = dbHelper.getWritableDatabase();
72 return true;
73 }
74
75
76 public long create(int anzahl, String einheit, String beschreibung, float preis) {
77 ContentValues initialValues = createContentValues(anzahl, einheit, beschreibung, preis);
78
79 return database.insert(DATABASE_TABLE_NAME, null, initialValues);
80 }
81
82
83 private ContentValues createContentValues(int anzahl, String einheit, String beschreibung, float preis) {
84 ContentValues values = new ContentValues();
85 values.put(KEY_ANZAHL, anzahl);
86 values.put(KEY_EINHEIT, einheit);
87 values.put(KEY_BESCHREIBUNG, beschreibung);
88 values.put(KEY_PREIS, preis);
89
90 return values;
91 }
92}
so noch die logCat ausgabe:
11-07 22:40:47.357: DEBUG/AndroidRuntime(467): Shutting down VM
11-07 22:40:47.366: WARN/dalvikvm(467): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
11-07 22:40:47.386: INFO/Process(52): Sending signal. PID: 467 SIG: 3
11-07 22:40:47.386: INFO/dalvikvm(467): threadid=7: reacting to signal 3
11-07 22:40:49.186: INFO/Process(467): Sending signal. PID: 467 SIG: 9
11-07 22:40:49.206: INFO/ActivityManager(52): Process com.AndroidTest1 (pid 467) has died.
11-07 22:40:49.206: INFO/WindowManager(52): WIN DEATH: Window{44d91468 com.AndroidTest1/com.AndroidTest1.actAdmin paused=false}
11-07 22:40:49.236: INFO/UsageStats(52): Unexpected resume of com.android.launcher while already resumed in com.AndroidTest1
11-07 22:40:49.276: WARN/InputManagerService(52): Got RemoteException sending setActive(false) notification to pid 467 uid 10028
vielen dank schomal!!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.