在android中从sqlite读取日期



我在sqlite中存储了一些日期,当我尝试检索数据时,它返回null。

private ArrayList<String> file_list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<String> _list = db.get_file
(String.valueOf(myFiles.get(position).getId()), file_list);
Log.e("TAG","_list " + _list);
case R.id.get_file:
boolean save_file = db.add_file(String.valueOf(myFiles.get(position).getId()),
file_list);
if (save_file){
Toast.makeText(this, "saved successfully", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "saved failed", Toast.LENGTH_SHORT).show();
}
public ArrayList<String> get_file(String id, ArrayList<String> arrayList){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT " + COL_FILE + " FROM "
+TABLE_NAME+" WHERE " + _ID +" =? " , new String[] {String.valueOf(id)});
if(cursor.moveToFirst()){
return arrayList;
} else {
return null;
}
}
public TrackGroupArray read_tga_file(String id, TrackGroupArray tga)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT " + TGA_FILE + " FROM "
+TABLE_NAME+" WHERE " + _ID +" =? " , new String[] {String.valueOf(id)});
if(cursor.moveToFirst()){
return tga;
} else {
return null;
}
}

TrackGroupArray read_tga = db.read_tga_file(String.valueOf(myFiles.get(position).getId()),
trackGroupArray);

每次我保存一个文件,它都会成功保存,我已经签入了数据库,文件就在那里。但是当我想要检索它时,Log.e("TAG","_list " + _list);返回null。

您的get_File方法,即使有一行并且moveToFirst成功,也将始终返回null,因为在定位/选择行的情况下,您只会返回一个未实例化的arrayList。

你需要

  • a(实例化arrayList(否则它将为null(,然后
  • b(为存在的每一行(如果有的话(向arrayList添加元素

所以类似于:-

@SuppressLint("Range")
public ArrayList<String> get_file(String id, ArrayList<String> arrayList) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT " + COL_FILE + " FROM "
+ TABLE_NAME + " WHERE " + _ID + " =? ", new String[]{String.valueOf(id)});
ArrayList<String> rv = new ArrayList<>(); //<<<<< A instantiate the ArrayList<String>

/* Loop through the returned row(s) if any */
while (cursor.moveToNext()) {
/* for each iteration add an element to rv (the ArrayList) */
rv.add(cursor.getString(cursor.getColumnIndex(COL_FILE)));
}
cursor.close(); //<<<<< should ALWAYS close Cursors when done with them
return rv; // return the arraylist
}

最新更新