Java Android无法解析构造函数ArrayAdapter
我知道这个问题以前被问过多次,但没有一个解决方案对我有效。这是我的代码:Java Android无法解析构造函数ArrayAdapter,java,android,Java,Android,我知道这个问题以前被问过多次,但没有一个解决方案对我有效。这是我的代码: public class reminderDAO extends dbManager{ public reminderDAO(Context context) { super(context); } // Adding new reminder public void addReminder(Reminder reminder) { //dbm.gettingWritable(values);
public class reminderDAO extends dbManager{
public reminderDAO(Context context) {
super(context);
}
// Adding new reminder
public void addReminder(Reminder reminder) {
//dbm.gettingWritable(values);
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(getKEY_DATE(), reminder.getReminderDate());
values.put(getKEY_TITLE(), reminder.getReminderTitle());
values.put(getKEY_DESC(), reminder.getReminderDescription());
values.put(getKEY_TIME(), reminder.getReminderTime());
// Inserting Row
db.insert(getDATABASE_TABLE(), null, values);
db.close(); // Closing database connection
}
public List<Reminder> getAllReminders(ListView lv) {
ArrayList<Reminder> reminderList = new ArrayList<Reminder>();
// Select All Query
String selectQuery = "SELECT * FROM " + getDATABASE_TABLE();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
MainActivity ma = new MainActivity();
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Reminder r = new Reminder();
r.setReminderDate(cursor.getString(0));
r.setReminderTitle(cursor.getString(1));
r.setReminderDescription(cursor.getString(2));
r.setReminderTime(cursor.getString(3));
// Adding reminder to list
reminderList.add(r);
} while (cursor.moveToNext());
}
ArrayAdapter<Reminder> arrayAdapter = new ArrayAdapter<Reminder>(
this,
android.R.layout.simple_list_item_1,
reminderList );
lv.setAdapter(arrayAdapter);
// return reminder list
return reminderList;
}
}
公共类提醒道扩展dbManager{
公共提醒道(上下文){
超级(上下文);
}
//添加新提醒
公共作废添加提醒(提醒){
//gettingWritable(值);
SQLiteDatabase db=getWritableDatabase();
ContentValues=新的ContentValues();
value.put(getKEY_DATE(),rementer.getrementerDate());
value.put(getKEY_TITLE(),rementer.getrementertitle());
value.put(getKEY_DESC(),rementer.getrementerdescription());
value.put(getKEY_TIME(),rementer.getrementertime());
//插入行
insert(getDATABASE_TABLE(),null,value);
db.close();//关闭数据库连接
}
公共列表GetAll提醒(ListView lv){
ArrayList提醒列表=新建ArrayList();
//选择所有查询
String selectQuery=“SELECT*FROM”+getDATABASE_TABLE();
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
MainActivity ma=新的MainActivity();
//循环遍历所有行并添加到列表
if(cursor.moveToFirst()){
做{
提醒r=新提醒();
r、 setrementerDate(cursor.getString(0));
r、 setReminderTitle(cursor.getString(1));
r、 setEmlerderDescription(cursor.getString(2));
r、 设置提醒时间(cursor.getString(3));
//向列表中添加提醒
提醒列表。添加(r);
}while(cursor.moveToNext());
}
ArrayAdapter ArrayAdapter=新的ArrayAdapter(
这
android.R.layout.simple\u list\u item\u 1,
提醒列表);
低压设置适配器(阵列适配器);
//退货提醒单
返回提醒列表;
}
}
我觉得这和arrayAdapter内部的“这个”有关。我已经尝试过getActivity()、this.getActivity()、提醒道.this.getActivity()、MainActivity.this和提醒道.this
有人有解决方案吗?在类中创建上下文变量。并从构造函数参数中分配它
private Context context;
public reminderDAO(Context context) {
this.context = context;
super(context);
}
然后使用此变量传递到ArrayAdapter
ArrayAdapter<Reminder> arrayAdapter = new ArrayAdapter<Reminder>(
this.context,
android.R.layout.simple_list_item_1,
reminderList );
ArrayAdapter ArrayAdapter=新的ArrayAdapter(
在这种情况下,
android.R.layout.simple\u list\u item\u 1,
提醒列表);
只是一个侧节点:注意java代码约定。类名应该总是以大写开头:提醒道和DbManager是一个更好的命名。好的,谢谢,注意。你知道我遇到了什么错误吗?你有没有试过context
?只是在那里试过,但我仍然遇到同样的错误IDE抱怨什么?错误消息是什么?