java - 不明白为什么我不能将数据追加到 ArrayList 的末尾?

标签 java android sqlite arraylist cursor

我正在使用 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;
}

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

 ArrayList dbDate = dbHandler.databaseToStringDate();

    String dbDateString = dbDate.toString();

    date.setText( dbDateString);

最佳答案

在代码开头,将 dateString 定义为

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

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

dateList.add(dateString);

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

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

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

关于java - 不明白为什么我不能将数据追加到 ArrayList 的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45175231/

相关文章:

java - 启动tomcat时jsp索引异常

android - 如何设置 RecyclerView 应用程序 :layoutManager ="" from XML?

ios - ( Objective-C )在 sqlite 数据库中保存更改

c# - Visual Studio Server Explorer 是否支持自定义数据库提供程序?

android - "big"pouchdb 上的附件与 sqlite 卡住

java - Android 相当于 iOS 的 dispatch_after

java.util.InputMismatchException 通过读取 double

java - MinHeap 提取/heapDown() 失败 : incorrect order of elements

android - 如何刷新 TableLayout 中的数据?

Android 谷歌地图 v2 标记 z 顺序/z 索引