【问题标题】:Getting the last row of sqlite duplicated复制最后一行sqlite
【发布时间】:2021-02-09 23:22:20
【问题描述】:

我正在尝试以ArrayList 的形式从 sqlite 表中获取所有行 我在表中成功存储了四行(id INTEGER,title TEXT,image BLOB) 但是当我尝试获取并显示这四行时,我只得到最后一行重复 这是我的模特..

public class FileUploaded {
    private int id;
    private String title;
    private Bitmap image;

    public FileUploaded(int id, String title, Bitmap img){
        this.id=id;
        this.title=title;
        this.image=img;
    }
    public FileUploaded(){}

    public void setId(int id){
        this.id=id;
    }
    public int getId(){
        return id;
    }
    public void setTitle(String title){
        this.title=title;
    }
    public String getTitle(){
        return title;
    }
    public void setImage(Bitmap img){
        this.image=img;
    }
    public Bitmap getImage(){
        return image;
    }
}

这是我的获取功能..

public ArrayList<FileUploaded> getFiles(){
    SQLiteDatabase db = this.getReadableDatabase();
    ArrayList<FileUploaded> results = new ArrayList<>();
    FileUploaded file = new FileUploaded();
    Cursor cs = db.rawQuery("SELECT * FROM files",null);
    if (cs.moveToFirst()) {
        while (cs.isAfterLast() == false) {
            file.setId(cs.getInt(cs.getColumnIndex("id")));
            file.setTitle(cs.getString(cs.getColumnIndex("title")));
            file.setImage(BitmapUtility.getImage(cs.getBlob(cs.getColumnIndex("image"))));
            results.add(file);
            cs.moveToNext();
        }
    }
    return results;
}

这是我的显示功能

ArrayList<FileUploaded> tst = db.getFiles();
            for (int i = 0; i<tst.size();i++){
                FileUploaded file = tst.get(i);
                Log.w("Display :", "id="+file.getId()+" title="+file.getTitle());

            }

希望你们能帮帮我..

【问题讨论】:

    标签: java android sqlite android-sqlite


    【解决方案1】:

    您需要为循环中的每次迭代创建一个新的FileUploaded 对象。现在您正在更新同一对象中的值,并将其再次添加到您的数组中。

    换句话说,移动

    FileUploaded file = new FileUploaded();
    

    while 循环内。

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2011-11-26
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多