3

在我的 SQLite 设置类中,我有一个 DbHelper,它需要一个 Context 作为它的一部分。为了设置上下文,我只是在我的 SQLite 类中使用了一个构造函数,它需要一个上下文作为它的参数的一部分。

但是我刚刚遇到了一个问题。当试图从一个不是 Activity 的类中调用我的 SQLite 类时,我不能用作context classname.this,这让我很烦。

我也尝试这样做来声明一个上下文:

protected Context context;

然后再这样称呼它:

SetSql PlayerObject = new SetSql(This.context);

但这也不起作用。

请问有什么建议吗?

4

2 回答 2

6

像这样传递应用程序上下文

SetSql PlayerObject = new SetSql(this.getApplicationContext());

现在它应该可以正常工作了。

于 2012-04-13T08:01:17.230 回答
-1
public class DBHelper extends SQLiteOpenHelper {

private static final String TAG = "DBHelper";
private static final int DB_VERSION = 1;

private Context context;
private String DB_PATH;
private String DB_NAME;
private String TABLE_NAME;
private boolean booCreate;
private String createString;
private SQLiteDatabase myDataBase;

public DBHelper(Context context, String db_name, String table_name,
        boolean booCreate, String createString) {
    super(context, db_name, null, DB_VERSION);
    this.context = context;
    this.DB_NAME = db_name;
    this.DB_PATH = "/data/data/" + FindPackageName() + "/databases/";
    Log.d(TAG, "DBPATH=" + DB_PATH);
    this.TABLE_NAME = table_name;
    this.createString = createString;
    this.booCreate = booCreate;
    Log.d(TAG,"booCreate=" + String.valueOf(this.booCreate));
    try {
        createDataBase();
    } catch (IOException e) {
        throw new Error("Unable to Create Database");
    }
}

在你的活动中

dbHelper = new DBHelper(this, this.getString(R.string.db_name_contact),
            this.getString(R.string.table_name_contacts), true, createString);

观看此视频并从本教程的第三部分下载代码

于 2012-04-12T21:14:48.250 回答