【问题标题】:Can't figure why I can't append data to end of ArrayList?不明白为什么我不能将数据附加到 ArrayList 的末尾?
【发布时间】:2017-12-23 19:41:26
【问题描述】:

我正在使用 add() 将数据附加到我的 ArrayList,但我相信我的光标的逻辑是使我试图附加的数据实际上通过并替换我的所有 Arraylist 数据。

这是我的 DBHandler.java 中的方法

public ArrayList databaseToStringDate(){

    String dateString = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

    ArrayList<String> dateList = new ArrayList<>();

    SQLiteDatabase db = getWritableDatabase();
    String query = "SELECT * FROM " + KICK_TABLE + " WHERE 1";

    //Cursor points to a location in your results
    Cursor c = db.rawQuery(query, null);
    //Move to the first row in your results
    c.moveToFirst();

    //Position after the last row means the end of the results
    while (!c.isAfterLast()) {
        if (c.getString(c.getColumnIndex("productname")) != null) {
            dateList.add(dateString);
           // dateString += "\n";
        }
        c.moveToNext();
    }

    db.close();
    return dateList;
}

这是我的片段类中的代码,它显示了工作正常的 textView

 ArrayList dbDate = dbHandler.databaseToStringDate();

    String dbDateString = dbDate.toString();

    date.setText( dbDateString);

【问题讨论】:

  • 你能再具体一点吗?你的 ArrayList 包含什么?你认为它应该包含什么?
  • 我想显示用户执行某项任务的日期,但所有内容的日期都是最后一个日期。例如,我在 TextView 中有“2017-07-18”,如果用户确实说动作 tommarow,我想要“2017-07-18, 2017-07-19”。但我得到的是“2017-07-19, 2017-07-19”。
  • 您的表格是否有一列包含日期值?

标签: java android sqlite arraylist cursor


【解决方案1】:

在代码的开头,您将dateString 定义为

String dateString = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

您从数据库中检索行,并为数据库中的每一行调用

dateList.add(dateString);

但您从未重新分配 dateString 来表示数据库中行中的日期。您需要从数据库中读出日期列并解析添加 that String 到您的 ArrayList。例如:

while (!c.isAfterLast()) {
    if (c.getString(c.getColumnIndex("productname")) != null) {
        dateList.add(c.getString(c.getColumnIndex("date")));
    }
    c.moveToNext();
}

如果没有额外的列查找,您只是一遍又一遍地将相同的 String 添加到 ArrayList

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2021-06-11
    • 2020-08-09
    • 1970-01-01
    • 2013-06-18
    相关资源
    最近更新 更多