java - Android 无法解析构造函数 ArrayAdapter

标签 java android

我知道这个问题之前已经被问过多次,但没有一个解决方案对我有用。这是我的代码:

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;
}
}

我感觉这与 arrayAdapter 中的“this”有关。我试过 getActivity()、this.getActivity()、reminderDAO.this.getActivity()、MainActivity.this 和 reminderDAO.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 );

关于java - Android 无法解析构造函数 ArrayAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33915224/

相关文章:

java - 检查 Collection 值(value)

java - 重复使用 readUTF() 后,ObjectInputStream 抛出 EOFException

java - 使用 JavaFX 在文本上“打字”动画

android - 对话框关闭后的 EditText 光标错误

android - TaskStackBuilder 在 AlarmReceiver 中导致 NoClassDefFoundError

android - 将长文本分成页面,以便 viewpager 有时显示空白

android - 为什么 Facebook 应用程序链接在 React Native 中不起作用

Java 6 Collections.checkedList 适当用法

android - 如何使用多个 ListView 和 ViewFlipper (android)

java - 将 JPanel 嵌入框架中