数据库函数文件中getDefaultSharedPreferences()的上下文

时间:2014-01-31 17:00:49

标签: android android-context

我有文件,我拥有数据库的所有功能,对于一个查询,我需要使用getDefaultSharedPreferences()获取首选项,但我不知道如何轻松获取上下文。

以下是此文件的一个片段:

public class Database {

    private SQLiteOpenHelper openHelper;

    public Cursor getVzkazy(long uzivatel) {
        SQLiteDatabase db = openHelper.getReadableDatabase();
        int limit = PreferenceManager.getDefaultSharedPreferences(this).getInt("limit", 100000);
        return db.query(TB_NAME_VZ, columns_vz, null, null, null, null, COLUMN_ID_VZ + " DESC", String.valueOf(limit));
    }
}

1 个答案:

答案 0 :(得分:1)

在实例化Database类时,您需要传递Context。 将公共构造函数添加到类Database:

public class Database {

    private Context mContext;

    public Database(Context context) {
        mContext = context;
    }
}

然后使用mContext,传递“this”将无法正常工作,因为它的类型为Database,它需要类型Context,因此会产生编译错误。