我在用Android编写内容提供程序。我想编写查询实现。我正在contentProvider的查询函数中创建一个DbHelper对象。但是创建此内容时出现错误,导致无法访问此内容提供程序类中的MainActivity.this。我需要MainActivity.this,以便我可以初始化DbHelper并使用DbHelper类中已经实现的函数查询。我该如何解决这个问题?

码:

public class CourseContentProvider extends ContentProvider {


    @Override
    public Cursor query(Uri arg0, String[] arg1, String arg2, String[] arg3,
            String arg4) {
        // TODO Auto-generated method stub

        if (sURIMatcher.match(arg0)==COURSE) {
            MyDbHelper obj = new MyDbHelper(MainActivity.this);//Error msg here: No enclosing instance of the type MainActivity is accessible in scope
        }
        return null;
    }
//other auto generated functions
}


谢谢。

最佳答案

要获得Context,只需在扩展getContext()的类中调用ContentProvider

例:

@Override
    public boolean onCreate() {
        Context context = getContext();
        DBHelper = new DatabaseHelper(context);
        db = DBHelper.getWritableDatabase();
        return (db == null) ? false : true;
    }

关于java - 如何在contentProvider类中获取mainactivity.this-Android中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22543757/

10-09 01:11