我在android studio上工作,我遇到了一個問題,我不能初始化我的DataHandler類中的我的sqlite實例,但我可以在我的MainActivity類中初始化它。這是在MainActivity中初始化SQLite的正確方法嗎?
實施例: MainActivity類別:
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private RecyclerView.Adapter adapter;
//valid
private SQLiteDatabase sqLiteDatabase = openOrCreateDatabase("Database", Context.MODE_PRIVATE , null); //...
中的DataHandler類
:
public class DataHandler {
public static String[] names,dates;
//invalid: cannot resolve method
SQLiteDatabase sqLiteDatabase = openOrCreateDatabase("HMDB", Context.MODE_PRIVATE , null);
所以,我沒有在主活動此
:
public SQLiteDatabase getSqLiteDatabase() {
return sqLiteDatabase;
}
在數據處理程序中:
MainActivity mainActivity;
SQLiteDatabase sqLiteDatabase = mainActivity.getSqLiteDatabase();
這是正確的方法嗎?有沒有更好的方法? sry如果難以理解
不,這不是最好的方式來做到這一點。很難說出什麼問題,但第一個猜測是你不在'DataHandler'類中導入'SQLiteDatabase'。但是,爲此使用'SQLiteOpenHelper'更爲常見。 – Gary99
我想在這裏你可以獲取更多信息https://github.com/codepath/android_guides/wiki/Local-Databases-with-SQLiteOpenHelper –