我们可以在SQLite数据库中存储arraylist吗?

时间:2014-03-20 07:15:23

标签: android sqlite arraylist jsonobject

我是android的初学者...我们可以将arraylist保存到SQLite数据库吗?一些人建议使用JSON对象来插入arraylist。如果可以这样做,请举个例子。 这是我的代码:

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
map.put("agendaTitle",agendaTitle );
map.put("presenterName", presenterName);                     
mylist.add(map);                      
System.out.println("Map values are: "+ mylist);  
JSONObject json = new JSONObject(map);
json.put(map);
String agendaStrings = json.toString();
System.out.printf( "JSON: %s", json.toString(2) );

这里我将agendatitle和presentername值传递给hashmap,稍后将其添加到arraylist中。现在我想将我的arraylist保存到SQLite。

2 个答案:

答案 0 :(得分:0)

您需要遍历ArrayList并获取每个项目。每个项目都需要存储在 ContentValue 中,您可以直接将此内容值传递给db。

  ContentValues cv=new ContentValues();
  public void insertToDb(HashMap<String,String> items)
  {
  for(int i=0;i<items.size();i++)
     {
      cv.put(COLUMN_NAME_FOR_TITLE,items.get("agendaTitle");
      cv.put(COLUMN_NAME_FOR_PRESENTER_NAME,items.get("presenterName");
      db.insert(TABLE_NAME,null,cv);//where db is an instance of SQLiteDatabase
      cv.clear()
     }
   }

答案 1 :(得分:0)

您可以尝试如下:

public void addRecords(HashMap<String, String> queryValues) {
  SQLiteDatabase database = this.getWritableDatabase();
  ContentValues values = new ContentValues();
  values.put("agendaTitle", queryValues.get("agendaTitle"));
  database.insert(TABLE_NAME, null, values);
  database.close();
}