कोड:
सार्वजनिक वर्ग डेटाबेस ओपनहेल्पर SQLiteOpenHelper {सार्वजनिक स्ट्रिंग str = null; सार्वजनिक स्थिर अंतिम स्ट्रिंग TABLE_SPEECH = "लेंपेच"; सार्वजनिक स्थिर अंतिम स्ट्रिंग COLUMN_ID = "id"; सार्वजनिक स्थिर अंतिम स्ट्रिंग SPEECH_TEXT = "भाषण"; निजी स्थिर अंतिम स्ट्रिंग DATABASE_NAME = "speechtext.db"; निजी स्थिर अंतिम अंत DATABASE_VERSION = 1; निजी SQLite डेटाबेस डेटाबेस; निजी डेटाबेस ओपनहेल्पर डीबीएचलपर; निजी स्थिर अंतिम स्ट्रिंग TABLE_CREATE = "टैब बनाएँ" + TABLE_SPEECH + "(" + COLUMN_ID + "INTEGER," + SPEECH_TEXT + "TEXT);"; DatabaseOpenHelper (संदर्भ संदर्भ) {सुपर (संदर्भ, DATABASE_NAME, रिक्त, DATABASE_VERSION); } @ ओवरराइड पब्लिक व्हाइड ऑन क्रैक (SQLiteDatabase db) {db.execSQL (TABLE_CREATE); लॉग। V ("मुख्य गतिविधि", "निर्माण के बाद"); } @ ओवरराइड सार्वजनिक शून्य पर अपग्रेड (SQLiteDatabase डीबी, इंट पुरानावर्सन, इंट न्यूवर्सन) {// पुरानी तालिका ड्रॉप यदि डीबी.एक्सएक्सएसक्यूएल ("ड्रॉप तालिका में मौजूद है" + टैबिल_SPEECH); // बनाने के लिए टेबल पर फिर से बनाएं (डीबी); } सार्वजनिक शून्य खुला () फेंकता है SQLException {database = dbHelper.getWritableDatabase (); } सार्वजनिक शून्य बंद () {database.close (); } सार्वजनिक शून्य सम्मिलन (स्ट्रिंग भाईपास) {ContentValues cv = नया सामग्री मूल्य (); सीवी.पुट (COLUMN_ID, 1); cv.put (SPEECH_TEXT, getpass); // खुला(); Database.insert (TABLE_SPEECH, रिक्त, सीवी); // बंद करे(); } सार्वजनिक स्ट्रिंग रीडमी () {SQLiteDatabase डीबी = this.getReadableDatabase (); कर्सर कर्सर = db.rawQuery ("चुनें" + SPEECH_TEXT + "FROM" + TABLE_SPEECH, रिक्त); If (cursor.moveToFirst ()) {str = cursor.getString (cursor.getColumnIndex (SPEECH_TEXT)); } वापसी str; }} और टेबल और तालिका मूल्यों को जोड़ने और बनाने के लिए एक बटन (हाँ) के लिए मुख्य सक्रियता में: इस ऐप के क्रैश होने पर क्लिक करने के बाद।
हाँ SetOnClickListener (नया View.OnClickListener () {public void onClick (देखें दृश्य) {try {makeTable ()}} पकड़ (SQLiteException से) {Log.e (getClass ()। GetSimpleName (), "डेटाबेस बना या खोल नहीं सकते ");}}}); यह तब कहा जाता है जब उपयोगकर्ता हां बटन पर क्लिक करता है और डेटा को डाला जाता है और क्रेट () को कॉल किया जाना चाहिए, लेकिन तब यह क्रैश हो जाता है क्योंकि मैं हां पर क्लिक नहीं करता हूं। < Pre> सार्वजनिक शून्य createTable () {DatabaseOpenHelper dbhelper = new DatabaseOpenHelper (getBaseContext ()); dbhelper.getWritableDatabase (); dbhelper.insert (पास); स्ट्रिंग ए = डीबेलर। रीड (); TextView पढ़ता है = (TextView) findViewById (R.id.textView2); reads.setText (क); } "CreateTable" विधि में आप "डेटाबेस" चर को सेट नहीं कर रहे हैं, तो
कि आप अपने डालने में उपयोग कर रहे हैं, इसलिए यह शून्य है। अपने स्टैकट्र्रेस की जांच करें और देखें कि क्या त्रुटि सम्मिलन () विधि में है।
CreateTable () में परिवर्तन:
dbhelper.getWritableDatabase (); से
dbhelper.open ();