當我用SQLiteOpenHelper類擴展我的DatabaseClass時,我必須實現必須在其參數中包含Context的構造函數。如果我必須使用這個數據庫與我的其他類上下文可能會改變。當我提供不同的上下文時會做什麼更改。SQLiteOpenHelper類中的上下文是什麼如果我們提供不同類的不同上下文?
public class DatabaseClass extends SQLiteOpenHelper {
static String TABLE_NAME = "hammad";
static String DATABASE_NAME = "databases.db";
SQLiteDatabase database;
public DatabaseClass(Context context) {
super(context, DATABASE_NAME, null, 1);
Log.i("xcv", "Constructor called");
this.database = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
Log.i("xcv", "OnCreate");
try {
sqLiteDatabase.execSQL("create table student (id integer primary key autoincrement,name varchar)");
Log.i("xcv", "On Create query Table created");
} catch (Exception ffff) {
Log.i("xcv", "2:"+ffff.getMessage());
}
}
StartPage.java
public class StartPage extends AppCompatActivity {
DatabaseClass database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_page);
setLoginBtn(); // Set Login Btn
database=new DatabaseClass(this);
}
}
Class2.java
public class Class2 extends AppCompatActivity {
DatabaseClass database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_page);
setLoginBtn(); // Set Login Btn
database=new DatabaseClass(this);
}
}
你也可以使用'getApplicationContext()'。那到處都是一樣的 – tynn