我在用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/