我有MyCustomAdapter课程
public class MyCustomAdapter extends SimpleCursorAdapter{
}
我有另一个名为DbAdapter的类,其中我有sql查询的函数。我想访问MyCustomAdapter类中的函数
DbAdapter db and next I have to add
db = new DbAdapter(this)
但它不起作用。我试过了
Contex contex
db = new DbAdapter(contex) but then I have java.lang.NullPointerException
有没有办法在MyCustomAdapter中访问我的DbAdapter?
答案 0 :(得分:0)
让您的MyCustomAdapter
- 类接受Context
- 对象作为参数:
public class MyCustomAdapter extends SimpleCursorAdapter{
private final Context context;
public MyCustomAdapter(Context c){
this.context = c;
}
}
在调用活动中,您可以简单地将this
传递给上下文。
您收到此错误是因为DVM尝试调用SimpleCursorAdapter(Context)
- 构造函数,该构造函数不存在。
您的问题的解决方案是使用SimpleCursorAdapter
显式调用super(...)
的有效构造函数,或者使MyCursorAdapter
- 构造函数接受与SimpleCursorAdapter
之一相同的参数} -constructors。
什么方法可以依赖于你想要用Cursor-adapter做什么。如果你有某些构造函数参数的常量值,你可以使用它们,如果你没有,你需要将它们包含在MyCursorAdapter
- 构造函数中。
例如,假设您没有任何构造函数参数的常量值:
public class MyCustomAdapter extends SimpleCursorAdapter{
private final Context context;
public MyCustomAdapter(Context context, int layout, Cursor c, String[] from, int[] to){
super(Context context, int layout, Cursor c, String[] from, int[] to); // Call the super-
// classes constructor
this.context = context; // Save the context for further use
}
}
可能会发现有关此问题的更多信息here。