एंड्रॉइड एसक्यूएलएट डेटा जोड़ा नहीं जा रहा है - एंड्रॉइड, जेसन, एसक्लाइट

मैं SQLite डेटाबेस में JSON Arrays जोड़ने के लिए निम्न कोड का उपयोग कर रहा हूं:

प्रश्नकर्ता वर्ग:

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);

हालांकि, लॉग कभी प्रदर्शित नहीं होता है, और डेटाबेस खाली है। मुझे अपने लॉगकैट में कोई त्रुटि नहीं है।

गलत क्या है ? मैं यह कैसे तय करुं ?

धन्यवाद !

उत्तर:

उत्तर № 1 के लिए -1

आप निम्न विधि को परिभाषित करते हैं:

public static boolean isDatabaseOpened() {
if (myDataBase == null) {
return false;
}
return myDataBase.isOpen();
}

आप "उपयोग कर रहे हैं myDatabase.isOpen () और दस्तावेज़ीकरण के अनुसार, यह लौटाता है:

यह सही है कि डेटाबेस वर्तमान में खुला है (बंद नहीं किया गया है)।

हालांकि, आपका insertQuestion() विधि डेटाबेस बंद करता है।

[अद्यतन करें]

के अंत में डेटाबेस बंद मत करो insertQuestion() तरीका। आपको इसके बजाय ऐसा करना चाहिए onDestroy तरीका। इसे एक बार खोलें onCreate विधि और इसे बंद करें जब आपको इसकी आवश्यकता नहीं है।


संबंधित सवाल
सबसे लोकप्रिय