Sorry Harald aber irgendwie stehe ich auf dem schlauch?!
Das mit dem erhöhen der Variable ist mir klar,aber wie erhöhe ich eine Varibale welche final ist? Oder muss ich sie nicht final setzten?
Das mit dem Drop habe ich aus der API von Google, dort steht man soll onUpgrade() benutzten wann man was droppen will.
"The implementation should use this method to drop tables, add tables, or do anything else it needs to upgrade to the new schema version. "
Im Moment ist es so, das ich die App installiere sie startet ordnungsgemäss und erstellt eine DB erstellt. Nun muss ich aber die App immer 2x anklicken das sie den Download erneut anfängt. Also 1Klick,dasFenster geht auf,nichts geschieht. Dann drücke ich die Zurück Taste drücke erneut auf das App Symbol nun staret das Fenster und der Download beginnt auch.
Nun habe ich immer nur die gewünschten 74 Einträge und in der Log sehe ich das die Versionsnummer hochgezählt wird. Aber ich denke nicht das dies die Idee ist? Das würde bedeuten das jedesmal wenn jemand die App(oder später diese Funktion in der App) anklickt wird die Version um 1 erhöht? Und das alles nur damit ich die 74 Einträge behalten kann?
Das ist der Code, ich weiss das mit der Erhöhung ist noch Spagehtti-Code :-) Aber ich wollte einfach mal sehen was passiert:
1public class MainActivity extends Activity {
2
3 Activity activity = this;
4// ArrayList<Stundenplan> stundenplanList;
5 StundenplanDataSource stundenplanDataSource;
6
7 @Override
8 public void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_main);
11
12
13 int version = MySQLiteHelper.DataBase_Version;
14 if(!(version == 0)){
15 MySQLiteHelper.DataBase_Version = version + 1;
16 }
17
18
19 this.stundenplanDataSource = new StundenplanDataSource(this);
20
21 stundenplanDataSource.open();
22
23 getDataFromServer(); //Diese Methode startet den AsyncTask welcher als Innere Klasse implentiert ist
24
25 }
Und das ist die HelperKlasse:
1public class MySQLiteHelper extends SQLiteOpenHelper {
2
3 //Datenfelder für die Erstellung der Datenbank, sie werden hier satic erstellt
4 //damit die Spaltennamen beim Insert befehlt verwendent werden können
5 public static final String Table_Stundenplan = "Stundenplan";
6 public static final String Column_ID = "_id";
7 public static final String StartZeit = "start";
8 public static final String EndZeit = "ende";
9 public static final String AnzahlLektionen = "anzahlLektionen";
10 public static final String Klasse = "klasse";
11 public static final String ZimmerNr = "zimmerNr";
12 public static final String BezeichnungFach = "bezeichnungFach";
13
14 private static final String DataBase_Name = "Stundenplan.db";
15 public static int DataBase_Version = 1;
16
17
18 //Datenbank SQL Statement der onCreate ausgeführt wird
19 private static final String DataBase_Create = "create table "
20 + Table_Stundenplan + "("+ Column_ID+ " integer primary key autoincrement, "+ StartZeit
21 + " INTEGER, "+ EndZeit+ " INTEGER, "+ AnzahlLektionen+ " INTEGER, "
22 + Klasse+ " INTEGER, "+ ZimmerNr + " INTEGER, "+ BezeichnungFach+ " VARCHAR(100));";
23
24 //private static final String DataTable_Delete ="DROP TABLE IF EXISTS " + Table_Stundenplan+";";"
25
26
27
28 public MySQLiteHelper(Context context){
29 super(context, DataBase_Name, null, DataBase_Version);
30
31 }
32
33
34
35 /**
36 * Die Methode onCreate und onUpgrade werden von dem super Konstruktor der Klasse
37 * SQLiteOpenHelper aufgerufen
38 *
39 * @param SQLiteDatabase
40 */
41
42 @Override
43 public void onCreate(SQLiteDatabase db) {
44 //Der SQL Syntaxt wurde in "DataBase_Create" zur verwendung bereits vorbereiten
45 //db.execSQL("DROP TABLE IF EXISTS" + DataBase_Name +"."+Table_Stundenplan +";");
46 db.execSQL(DataBase_Create);
47
48 }
49
50
51
52 @Override
53 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
54 Log.w("onUpgrade", "Hier sollte irgendwas upgradete werde");
55 Log.w("onUpgrade",String.valueOf(db.getVersion()));
56 db.execSQL("DROP TABLE IF EXISTS " + Table_Stundenplan+";");
57 onCreate(db);
58
59
60 }
61}
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.