无法发送上下文,构造函数未定义

时间:2011-04-20 17:06:08

标签: java android

我有一个DbAdapter类来处理我的应用程序中的数据库内容,但由于某种原因,我无法从我创建的新类中调用它(尽管它在其他类中有效)。

我在新课程中使用的代码是:

DbAdapter mDbHelper = new DbAdapter(this);
        mDbHelper.open();

它似乎不喜欢“这个”。我的DbAdapter类的代码是:

    public DbAdapter (Context ctx) {
    this.mCtx = ctx;
}

我确信这是一个非常愚蠢的问题,但如果有人能指出我正确的方向,那将非常感激。

非常感谢,

皮特。

2 个答案:

答案 0 :(得分:1)

您必须是匿名内部类,因此这是引用您所在的类。

尝试

DbAdapter mDbHelper = new DbAdapter(YourActivity.this);

或在您的活动中

private Context mContext;

...onCreate(){
      mContext = this;
 }

然后你想要它:

DbAdapter mDbHelper = new DbAdapter(mContext );

答案 1 :(得分:1)

你在叫哪个班级

DbAdapter mDbHelper = new DbAdapter(this);
        mDbHelper.open();

这?根据您的DbAdapter构造函数定义,参数必须是Context类型。如果您从new DbAdapter(this)调用的类不是类Context或类Context的子类,则它被视为无效代码。