Android Save object as blob in sqlite

后端 未结 2 1210
轻奢々
轻奢々 2020-12-24 04:12

is this right. I have this gridview. I want to save its item as blob in sqlite. so when i open the list of save data in sqlite ill just load the save item

相关标签:
2条回答
  • 2020-12-24 04:39

    The way I store data as BLOB in my DB, is by converting them to JSON and then storing the bytes. e.g.

    ArrayList<Person> persons  = new ArrayList<>();
    Gson gson = new Gson();
    ContentValues values = new ContentValues();
    values.put(MyProvider.KEY_DATA, gson.toJson(persons).getBytes());
    // insert or update the DB
    

    And to get the list back

    byte[] blob = cursor.getBlob(cursor.getColumnIndex(MyProvider.KEY_DATA));
    String json = new String(blob);
    Gson gson = new Gson();
    ArrayList<Person> persons = gson.fromJson(json, new TypeToken<ArrayList<Person>>()
                                     {}.getType());
    

    Edit: to answer your last question, you should store your data (list of items).

    0 讨论(0)
  • 2020-12-24 04:40

    instead of (Object o), pass (Serializable o). Then, in the stuff you pass, add implements Serializable to class definition.

    0 讨论(0)
提交回复
热议问题