database– 调用Android的getSharedPreferences()的问题;来自SQLiteOpenHelper类

database– 调用Android的getSharedPreferences()的问题;来自SQLiteOpenHelper类,第1张

概述首先,我想简要描述一下我的情况.我有两个类,一个MainClass和一个DataBaseHelper类,它们扩展了SQLiteOpenHelper.在我的MainClass中,我调用DataBaseHelper类中的方法来打开数据库.在打开数据库之前,我想检查用户数据库版本(一旦我想更新数据库并将其推送到Android市场,这一点很重

首先,我想简要描述一下我的情况.

我有两个类,一个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);

我究竟做错了什么?我没有定义构造函数.这可能是失败吗?

最好的祝福
Johe

解决方法:

我找到了一个解决方案,我想分享一下.在这里能找到它:

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类全部内容,希望文章能够帮你解决database – 调用Android的getSharedPreferences()的问题;来自SQLiteOpenHelper类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存