我在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 –