this question has answer here:
- what nullpointerexception, , how fix it? 12 answers
- unfortunately myapp has stopped. how can solve this? 15 answers
i'm trying create basic database , insert 3 users, doesn't work.
this class creates database
package com.example.matadoor.db1; import android.content.context; import android.database.databaseerrorhandler; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; /** * created matadoor on 06/08/2016. */ public class dbcreat extends sqliteopenhelper { public final string tbname="t1"; public final string cid="id"; public static string cid2="test"; public final string user="username"; public final string creat="create table "+cid2+"("+cid+"integer primery key auto_increment , "+user+" text); "; public dbcreat(context context) { super(context,cid2,null, 1); } public dbcreat(context context, string name, sqlitedatabase.cursorfactory factory, int version, databaseerrorhandler errorhandler) { super(context, name, factory, version, errorhandler); } @override public void oncreate(sqlitedatabase db) { db.execsql(creat); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { }
and it's other class handles database - opens it, closes it, , inserts
package com.example.matadoor.db1; import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase; /** * created matadoor on 08/08/2016. */ public class dbhandler { private dbcreat dbc; private sqlitedatabase sdb; public dbhandler(context context) { dbc=new dbcreat(context); } public void open() { sdb=dbc.getwritabledatabase(); } public void close(){ dbc.close(); } public string display(int row) { cursor cu=sdb.query(dbc.tbname,null,null,null,null,null,null); cu.movetoposition(row); string user=cu.getstring(1); return user; } public void insert(string user) { contentvalues cn=new contentvalues(); cn.put(dbc.user,user); } }
and main class has 1 button inserting user db
package com.example.matadoor.db1; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.view; import android.widget.button; public class main extends appcompatactivity { button btn; dbhandler db; dbcreat dbc; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); btn=(button)findviewbyid(r.id.ins); // dbc.getwritabledatabase(); db.open(); db=new dbhandler(this); btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string [] user={"ali","reza","ahmed"}; for(int i=0;i<user.length;i++) { db.insert(user[i]); } } }); } }
so seems error. need switch 2 lines.
db.open(); // nullpointer here db=new dbhandler(this);
assuming there no other errors code, method doing nothing database.
public void insert(string user) { contentvalues cn=new contentvalues(); cn.put(dbc.user,user); }
you have call sdb.insert
cn
variable.
Comments
Post a Comment