Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android无法解析构造函数ArrayAdapter_Java_Android - Fatal编程技术网

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抱怨什么?错误消息是什么?