
znieh99
Fortgeschrittenes Mitglied
Hallo Forum,
ich versuche mich gerade an meiner ersten Datenbank und habe anhand des Buches "Android 4.4" von Arno Becker eine Datenbank-Struktur erstellt und möchte nun darauf zugreifen. Schon beim Schreiben der Anweisung "mDB = new UniverseDB.getInstance(this);" bekomme ich den Hinweis Cannot resolve Symbol 'getInstance(this)'.
Ich kann mir vorstellen, dass hier etwas mit dem Klassen-Zugriff nicht stimmt, aber was?
Hier die Code Segmente:
Aufrufende Activity:
DB Class:
ich versuche mich gerade an meiner ersten Datenbank und habe anhand des Buches "Android 4.4" von Arno Becker eine Datenbank-Struktur erstellt und möchte nun darauf zugreifen. Schon beim Schreiben der Anweisung "mDB = new UniverseDB.getInstance(this);" bekomme ich den Hinweis Cannot resolve Symbol 'getInstance(this)'.
Ich kann mir vorstellen, dass hier etwas mit dem Klassen-Zugriff nicht stimmt, aber was?
Hier die Code Segmente:
Aufrufende Activity:
Code:
package com.app.heinz.testdatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private UniverseDB mDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDB = new UniverseDB.getInstance(this); <-- hier: Cannot resolve Symbol 'getInstance(this)'
}
}
Code:
public class UniverseDB extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "universe.db";
private static final int DATABASE_VERSION = 1;
private static UniverseDB mINSTANCE; //eigene Instance
private static Object mLOCK = "";
/**
* Die Klasse wird über getInstance zur Selbst-Instanzierung aufgerufen.
* @param context = Aufrufende Anwendung
* @return = das einzige Exemplar dieser Klasse welches verwendet werden darf.
*/
public static UniverseDB getInstance(Context context) {
if(mINSTANCE == null) {
synchronized(mLOCK) {
if(mINSTANCE == null) {
mINSTANCE = new UniverseDB(context);
}
}
}
return mINSTANCE;
} //end getInstance -----------------------------------------
/**
* Der Konstruktor darf nur von getInstance aufgerufen werden,
* um mehrere Exemplare zu verhindern
* @param context = Context der aufrufenden Anwendung
*/
private UniverseDB(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
} //end Konstruktor UniverseDB ------------------------------
/**
* Erstellen der Datenbank
* @param db
*/
@Override public void onCreate(SQLiteDatabase db) {
db.execSQL(StepQuery.SQL_CREATE);
} //end onCreate ------------------------------------