我在Android Studio java中的一个片段中,想要在SqLite数据库中保存和读取一些东西。为了节省时间,我只需使用以下代码:
databaseHu = getBaseContext().openOrCreateDatabase(databaseName_Notes, MODE_PRIVATE, null);
databaseHu.execSQL("CREATE TABLE IF NOT EXISTS " + Tabel_Hu_Name + "(subject TEXT, tasks TEXT, dayofyear INT, day INT, month INT, year INT)");
databaseHu.execSQL("INSERT INTO " + Tabel_Hu_Name + " VALUES ('" + subject.getText().toString() + "','" + tasks.getText().toString() + "','" + c.get(Calendar.DAY_OF_YEAR) + "','" + c.get(Calendar.DAY_OF_MONTH) + "','" + c.get(Calendar.MONTH) + "','" + c.get(Calendar.YEAR) + "')");
databaseHu.close();但因为我在一个片段中,所以它标志着:
getBaseContext()这是个错误。我该如何解决这个问题呢?提前感谢!
发布于 2020-07-14 16:02:46
您可以像这样使用getActivity(),
databaseHu = getActivity().getBaseContext().openOrCreateDatabase(databaseName_Notes, MODE_PRIVATE, null);但它可能会调用nullPtrException。相反,您可以覆盖此函数并像这样创建:
Activity activity;
@override
public void onViewCreated(View view, Bundle savedInstanceState) {
if(getActivity()==null){
activity = getActivity;
}
}然后像这样使用它,
databaseHu = activity.getBaseContext().openOrCreateDatabase(databaseName_Notes, MODE_PRIVATE, null);https://stackoverflow.com/questions/62890050
复制相似问题