它适用于MainAcitvity.class,但在QueryUtils.class中不起作用。
private WeatherDBHelper weatherDBHelper = new WeatherDBHelper(this);
答案 0 :(得分:1)
确保WeatherDBHelper
构造函数接收Context as param
Public class WeatherDBHelper{
Context context;
public WeatherDBHelper(Context context){
this.context = context;
}
....
}
WeatherDBHelper
仅接收上下文作为参数。 QueryUtils没有Context类型。
可以在QueryUtils类
中添加上下文的地方完成Context context;
private WeatherDBHelper weatherDBHelper;
public QueryUtils(Context context){
this.context = context;
weatherDBHelper = new WeatherDBHelper(context);
}
在MainActivity中使用
QueryUtils qt = new QueryUtils(this);
答案 1 :(得分:0)
您的类QueryUtilis应该 扩展SQLiteOpenHelper
答案 2 :(得分:0)
问题在于WeatherDBHelper
需要Context
个对象且QueryUtils
不属于Context
类型,因此this
赢得了“{1}}在这里工作。
您可以this
成功使用MainActivity
的原因是MainActivity
是Activity
,这是Context
的子类。这是它的对象层次结构:
java.lang.Object
↳
android.content.Context
↳
android.content.ContextWrapper
↳
android.view.ContextThemeWrapper
↳
android.app.Activity
因此,在MainActivity
中,this
指的是一个实际上是Context
的对象。在QueryUtils
它没有。
您实际上需要将Context
传递给此。