【发布时间】:2015-04-30 08:16:25
【问题描述】:
我正在使用以下代码将 JSON 数组添加到 SQLite 数据库:
QuestionORM 类:
public static void insertQuestion(Context c,JSONArray jarr,String search) throws JSONException {
DatabaseWrapper databaseWrapper = new DatabaseWrapper(c);
if(isDatabaseOpened())
{
myDataBase = databaseWrapper.getWritableDatabase();
ContentValues values = postToContentValues2(jarr);
values.put(QuestionORM.COLUMN_SEARCH,search);
long questionId = myDataBase.insert(QuestionORM.TABLE_NAME, "null", values);
Log.e(TAG, "Inserted new Question with ID: " + questionId);
myDataBase.close();
}
}
private static ContentValues postToContentValues2(JSONArray jsonArray) throws JSONException {
ContentValues values = new ContentValues();
for(int i=0;i<jsonArray.length();i++)
{
JSONObject job1 = jsonArray.getJSONObject(i);
if(job1!=null)
{
JSONObject job2 = job1.getJSONObject("owner");
values.put(QuestionORM.COLUMN_ID, job1.getString("question_id"));
values.put(QuestionORM.COLUMN_TITLE,job1.getString("title"));
values.put(QuestionORM.COLUMN_AUTHOR,job2.getString("display_name"));
values.put(QuestionORM.COLUMN_VOTES,job1.getString("score"));
}
}
return values;
}
public static boolean isDatabaseOpened() {
if (myDataBase == null) {
return false;
}
return myDataBase.isOpen();
}
这在另一个活动中是这样使用的:
QuestionORM.insertQuestion(MainActivity.this,mJSONArr,url);
但是,日志永远不会显示,并且数据库是空的。我的 logcat 中也没有任何错误。
怎么了?我该如何解决这个问题?
谢谢!
【问题讨论】:
-
你有什么错误吗?
-
没有。没有我说的错误
-
long questionId = myDataBase.insert(QuestionORM.TABLE_NAME, null, values);null 不是字符串 -
@MurtazaKhursheedHussain 我删除了引号,但问题仍然存在。
-
有人能解释一下否决票吗?