android - sqlite database not created -
i using standard approach learned popular notepad example building first app.
got stuck strange problem.
sqlite database file (.db) not being created in /data/data/package/databases. have cross checked manifest file , openhelper file headfirst android dev. book ( using reference ) found myself unable figure out why database file not created..
there special permissions or need switch on working??
strange thing working fine pre-loaded examples. means '.db' file created notepad example when try, fails. :(
here files.
package - database.test
1. androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?> <uses-sdk android:minsdkversion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".database_testactivity" android:label="@string/app_name" > </activity> </application>
2.testopenhelper.java
package database.test; import android.content.context; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; public class testopenhelper extends sqliteopenhelper { testopenhelper(context context){ super(context,"mydb.db",null,1); } @override public void oncreate(sqlitedatabase database){ database.execsql("create table test_1 " + " (field1 integer primary key, field2 integer);"); } public void onupgrade (sqlitedatabase database, int oldversion, int newversion){ database.execsql("drop table if exists test1"); oncreate(database); } } 3.database_testactivity.java
package database.test; import android.app.activity; import android.os.bundle; import android.widget.listview; public class database_testactivity extends activity { /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); listview listview = (listview)findviewbyid(r.id.test_list); testadapter ta = new testadapter(); listview.setadapter(ta); testopenhelper openhelper = new testopenhelper(this); } } i know basic question, have been trying solve last fifteen days , frustrated.
please ..
change this:
database.execsql("create table test_1 " + " (field1 integer primary key, field2 integer)"); and testopenhelper openhelper = new testopenhelper(this); change sqlitedatabase db = new testopenhelper(this).getwritabledatabase();
you didn't created database, create instance of sqliteopenhelper create or open database have use getwritabledatabase() or getreadabledatabase() method.
exactly docs:
create and/or open database used reading , writing.
Comments
Post a Comment