Florian Schneider
- Forum-Beiträge: 4
21.12.2011, 11:38:04 via Website
21.12.2011 11:38:04 via Website
Hallo zusammen,
ich bin neu hier und hab gleich mal ein paar Fragen an euch
Ich bin gerade dabei eine App für unsere Hochschule zu entwickeln. Eine Funktion dieser App soll das darstellen von News sein, die ich mir aus einem RSS-Feed unserer Hochschule auslesen und anschließend in eine SQLite Datenbank speichern möchte. Das Auslesen und das einfach darstellen der News funktioniert. Um auch eine Offline-Variante bieten zu können sollen die News in einer Datenbank hinterlegt werden und genau hier tritt dieser Fehler auf. Beim schreiben in die Datenbank aus diesem Backgroundtask heraus also in der Zeile 14 db ist dabei eine Instanz meiner Helper Klasse die weiter unten aufgeführt ist. Direkt aus der Activity heraus funktioniert das einfügen auch ohne Probleme, verlagere ich das ganze in den Hintergrund kommt es zum Fehler. Hoffe ihr könnt mir helfen.
LG
ich bin neu hier und hab gleich mal ein paar Fragen an euch
Ich bin gerade dabei eine App für unsere Hochschule zu entwickeln. Eine Funktion dieser App soll das darstellen von News sein, die ich mir aus einem RSS-Feed unserer Hochschule auslesen und anschließend in eine SQLite Datenbank speichern möchte. Das Auslesen und das einfach darstellen der News funktioniert. Um auch eine Offline-Variante bieten zu können sollen die News in einer Datenbank hinterlegt werden und genau hier tritt dieser Fehler auf. Beim schreiben in die Datenbank aus diesem Backgroundtask heraus also in der Zeile 14 db ist dabei eine Instanz meiner Helper Klasse die weiter unten aufgeführt ist. Direkt aus der Activity heraus funktioniert das einfügen auch ohne Probleme, verlagere ich das ganze in den Hintergrund kommt es zum Fehler. Hoffe ihr könnt mir helfen.
LG
1private class DownloadFeedItems extends
2 AsyncTask<String, Integer, ArrayList<FeedItem>> {
3
4 @Override
5 protected ArrayList<FeedItem> doInBackground(String... url) {
6
7 // Download and Parse Feed
8 XmlFeedParser parser = new XmlFeedParser();
9 items = new ArrayList<FeedItem>();
10 items = parser.parse(url[0]);
11
12 Iterator iterator = items.iterator();
13 while (iterator.hasNext()) {
14 db.addFeedItem((FeedItem) iterator.next());
15 }
16 return items;
17 }
18
19 @Override
20 protected void onPostExecute(ArrayList<FeedItem> result) {
21
22 // Feed erfolgreich geladen und wird nun dargestellt
23 displayFeedItem(result);
24
25 }
26 }
2 AsyncTask<String, Integer, ArrayList<FeedItem>> {
3
4 @Override
5 protected ArrayList<FeedItem> doInBackground(String... url) {
6
7 // Download and Parse Feed
8 XmlFeedParser parser = new XmlFeedParser();
9 items = new ArrayList<FeedItem>();
10 items = parser.parse(url[0]);
11
12 Iterator iterator = items.iterator();
13 while (iterator.hasNext()) {
14 db.addFeedItem((FeedItem) iterator.next());
15 }
16 return items;
17 }
18
19 @Override
20 protected void onPostExecute(ArrayList<FeedItem> result) {
21
22 // Feed erfolgreich geladen und wird nun dargestellt
23 displayFeedItem(result);
24
25 }
26 }
1public class SQLiteHelper extends SQLiteOpenHelper {
2
3 // All Static variables
4 // Database Version
5 private static final int DATABASE_VERSION = 1;
6
7 // Database Name
8 private static final String DATABASE_NAME = "dhbw_db";
9
10 // Contacts table name
11 private static final String TABLE_NEWS = "news";
12
13 // Contacts Table Columns names
14 private static final String KEY_ID = "id";
15 private static final String KEY_TITEL = "titel";
16 private static final String KEY_DATE = "date";
17 private static final String KEY_URl = "url";
18 private static final String KEY_DESCRIPTION = "description";
19
20 public SQLiteHelper(Context context) {
21 super(context, DATABASE_NAME, null, DATABASE_VERSION);
22 }
23
24 // Creating Tables
25 public void onCreate(SQLiteDatabase db) {
26 // TABLE NEWS
27 String CREATE_NEWS_TABLE = "CREATE TABLE " + TABLE_NEWS + "(" + KEY_ID
28 + " INTEGER PRIMARY KEY," + KEY_TITEL + " TEXT," + KEY_DATE
29 + " TEXT," + KEY_URl + " TEXT," + KEY_DESCRIPTION + " TEXT"
30 + ")";
31 db.execSQL(CREATE_NEWS_TABLE);
32 }
33
34 // Upgrading database
35 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
36 // Drop older table if existed
37 db.execSQL("DROP TABLE IF EXISTS " + TABLE_NEWS);
38
39 // Create tables again
40 onCreate(db);
41 }
42
43 //addFeedItem
44 public void addFeedItem(FeedItem item) {
45 SQLiteDatabase db = this.getWritableDatabase();
46
47 ContentValues values = new ContentValues();
48 values.put(KEY_TITEL, item.getTitle());
49 values.put(KEY_DATE, item.getDate());
50 values.put(KEY_DESCRIPTION, item.getDescription());
51
52 // Inserting Row
53 db.insert(TABLE_NEWS, null, values);
54 db.close(); // Closing database connection
55 }
56
57}
2
3 // All Static variables
4 // Database Version
5 private static final int DATABASE_VERSION = 1;
6
7 // Database Name
8 private static final String DATABASE_NAME = "dhbw_db";
9
10 // Contacts table name
11 private static final String TABLE_NEWS = "news";
12
13 // Contacts Table Columns names
14 private static final String KEY_ID = "id";
15 private static final String KEY_TITEL = "titel";
16 private static final String KEY_DATE = "date";
17 private static final String KEY_URl = "url";
18 private static final String KEY_DESCRIPTION = "description";
19
20 public SQLiteHelper(Context context) {
21 super(context, DATABASE_NAME, null, DATABASE_VERSION);
22 }
23
24 // Creating Tables
25 public void onCreate(SQLiteDatabase db) {
26 // TABLE NEWS
27 String CREATE_NEWS_TABLE = "CREATE TABLE " + TABLE_NEWS + "(" + KEY_ID
28 + " INTEGER PRIMARY KEY," + KEY_TITEL + " TEXT," + KEY_DATE
29 + " TEXT," + KEY_URl + " TEXT," + KEY_DESCRIPTION + " TEXT"
30 + ")";
31 db.execSQL(CREATE_NEWS_TABLE);
32 }
33
34 // Upgrading database
35 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
36 // Drop older table if existed
37 db.execSQL("DROP TABLE IF EXISTS " + TABLE_NEWS);
38
39 // Create tables again
40 onCreate(db);
41 }
42
43 //addFeedItem
44 public void addFeedItem(FeedItem item) {
45 SQLiteDatabase db = this.getWritableDatabase();
46
47 ContentValues values = new ContentValues();
48 values.put(KEY_TITEL, item.getTitle());
49 values.put(KEY_DATE, item.getDate());
50 values.put(KEY_DESCRIPTION, item.getDescription());
51
52 // Inserting Row
53 db.insert(TABLE_NEWS, null, values);
54 db.close(); // Closing database connection
55 }
56
57}
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.