gpt4 book ai didi

database - 调用 Android 的 getSharedPreferences() 时出现问题;来自 SQLiteOpenHelper 类

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:26 25 4
gpt4 key购买 nike

首先我想简单描述一下我的情况。

我有两个类,一个 MainClass 和一个 DataBaseHelper 类,它扩展了 SQLiteOpenHelper。

在我的 MainClass 中,我调用 DataBaseHelper 类中的一个方法来打开一个数据库。在打开数据库之前,我想检查用户数据库版本(一旦我想更新数据库并将其推送到 Android 市场,这很重要)。因此,我从 DataBaseHelper 类调用 MainClass 中的以下方法。

 public int checkCurrentDbVersion(){
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFERENCES, 0);
int dbUpgradeVar = settings.getInt("dbUpgradeVar", 1);
return dbUpgradeVar;
}

我从 DataBaseHelper 类调用 checkCurrentDbVersion() 方法,如下所示:

    MainClass currentDbVersion = new MainClass(); 

int oldDbVersion = currentDbVersion.checkCurrentDbVersion();

一旦调试器运行以下行,它就会停止。

SharedPreferences settings = getSharedPreferences(PREFERENCES, 0);

我做错了什么?我没有定义构造函数。这会是失败吗?

最好的问候乔赫

最佳答案

我找到了一个解决方案,我想与大家分享。它可以在这里找到:

Passing data through intents instead of constructors

我忘记了上下文(我仍然不能 100% 确定上下文是关于什么的,但无论如何......)。

为了让代码正常工作,我这样修改了它:

 public int checkCurrentDbVersion(Context context){
// Restore preferences
SharedPreferences settings = context.getSharedPreferences(PREFERENCES, 0);
int dbUpgradeVar = settings.getInt("dbUpgradeVar", 1);
return dbUpgradeVar;
}

调用方法

private final Context myContext;

/*
*do some other stuff here
*/

MainClass currentDbVersion = new MainClass();

int oldDbVersion = currentDbVersion.checkCurrentDbVersion(myContext);

关于database - 调用 Android 的 getSharedPreferences() 时出现问题;来自 SQLiteOpenHelper 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com