为什么我在CalendarAdapter中使用它时标记为错误?
你能帮我解决这个错误吗?
public class CalendarAdapter extends BaseAdapter{
DbFertility db = new DbFertility(this); <=== (why when i use (this) in Calednar Adapater it marked as an error?
db.open();
int cycle = Integer.parseInt(db.getCycle(l));
int period = Integer.parseInt(db.getPeriod(l));
int date1 = Integer.parseInt(db.getPeriod(l));
db.close();}
public DbHelper{
public String getCycle(long l){
String[] columns = new String[]{KEY_PERIOD_ID, KEY_CYCLE_LENGHT,KEY_PERIOD_LENGHT,KEY_FIRST_DAY_OF_PERIOD};
Cursor c = getOurDatabase().query(TABLE_PERIOD, columns, KEY_PERIOD_ID + "=" + l, null, null, null, null);
if(c != null){
c.moveToFirst();
String cycle = c.getString(1);
return cycle;
}
return null;
}
public String getPeriod(long l){
String[] columns = new String[]{KEY_PERIOD_ID, KEY_CYCLE_LENGHT,KEY_PERIOD_LENGHT,KEY_FIRST_DAY_OF_PERIOD};
Cursor c = getOurDatabase().query(TABLE_PERIOD, columns, KEY_PERIOD_ID + "=" + l, null, null, null, null);
if(c != null){
c.moveToFirst();
String period = c.getString(2);
return period;
}
return null;
}
}
错误是:构造函数DbFertility(CalendarAdapter)未定义。 预期输出:我想从DbHelper获取数据。
答案 0 :(得分:0)
我不确定Dbfertility
的基类是什么,但如果扩展SQLiteOpenHelper
,则可能需要Android Context
。如果没有看到要实例化的类的构造函数的代码,就很难猜到。
从我的代码中看到,您的DbFertility
构造函数必须使用BaseAdapter
或CalendarAdapter
来定义。如果错误是未定义的构造函数,则需要在类中创建此构造函数:
public DbFetility(final BaseAdapter adapter){
// do init here
}
我不确定你是否知道这一点,但是当你在类或方法中使用this
时,它指的是你所在的当前类。在你的情况下,它引用CalendarAdapter
。
此外,这可能是格式问题,但CalendarAdpater
的代码在创建db
属性后的行上似乎有误。他们应该采用一种方法。
如果我的回答没有帮助,请考虑提供缺少的代码部分,否则很难弄清楚出了什么问题。