java - Android SQL query nullpointer can't get the data from database -
here logcat can't post image set in google drive
link here
////////and here db///////
import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlexception; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqlitedatabase.cursorfactory; import android.database.sqlite.sqliteopenhelper; public class userdb { public static final string table_user = "user"; public static final string id = "id"; public static final string username = "username"; public static final string password = "password"; public static final string chkpassword = "chkpassword"; public static final string sex = "sex"; public static final string eat = "eat"; public static final string drink = "drink"; public static final string smoke = "smoke"; public static final string conctrolweigh = "conctrolweigh"; public static final string blosuger = "blosuger"; public static final string hospital = "hospital"; private context context = null; public static final string education = "education"; public static class databasehelper extends sqliteopenhelper{ public static final string database_name = "diabetes.db"; private static final int database_version = 1; //usertable public databasehelper(context context, cursorfactory factory) { super(context, database_name, factory, database_version); } public static final string table_user_create = "create table " + table_user + "(" + id + " integer primary key autoincrement, " + username + " text , " + password+ " text ," + chkpassword+ " text ," + sex+ " text ," + eat + " text , " + drink + " text, " + smoke + " text, " + conctrolweigh + " text, " + blosuger + " text, " + hospital + " text, " + education + " text);"; public databasehelper(context context) { super(context, database_name, null, 1); } @override public void onopen(sqlitedatabase db) { super.onopen(db); // 每次成功打開資料庫後首先被執行 } @override public synchronized void close() { super.close(); } @override public void oncreate(sqlitedatabase db) { db.execsql(table_user_create); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { db.execsql("dropb table if exists " + table_user); oncreate(db); } } public databasehelper dbhelper; public sqlitedatabase db; public userdb(context context){ this.context = context; databasehelper openhelper = new databasehelper(this.context); this.db = openhelper.getwritabledatabase(); } public userdb open() throws sqlexception{ dbhelper = new databasehelper(context); db = dbhelper.getwritabledatabase(); homecoming this; } public void close(){ dbhelper.close(); } //add user public void insertentry(string id, string pwd,string chpw,string sex,string eat,string drink,string smoke,string conctrolweigh,string blosuger,string hospital,string education){ if (pwd.equals(chpw)){ contentvalues newvalues = new contentvalues(); newvalues.put("username", id); newvalues.put("password", pwd); newvalues.put("chkpassword", chpw); newvalues.put("sex", sex); newvalues.put("eat", eat); newvalues.put("drink", drink); newvalues.put("smoke", smoke); newvalues.put("conctrolweigh", conctrolweigh); newvalues.put("blosuger", blosuger); newvalues.put("hospital", hospital); newvalues.put("education", education); db.insert(table_user, null, newvalues); }else{ } } public string getsinlgeentry(string username) { cursor cursor = db.query("user", null, " username=?", new string[] { username }, null, null, null); if (cursor.getcount() < 1) // username not exist homecoming "not exist"; cursor.movetofirst(); string password = cursor.getstring(cursor.getcolumnindex("password")); homecoming password; } public sqlitedatabase getreadabledatabase() { // todo auto-generated method stub homecoming null; } } //////here activity////////// public class selfteachingactivity extends activity { button btnselback,tvartical ,tvfood,tvhealth,tvexcise; textview tvid,tvstore,tveat,tvhospital,tvblosuger,tvconctrolweigh,tvdrink,tvsmoke,tvsex,tveducation; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_selfteaching); findviews(); setlisteners(); //opendatabase(); string username= (this.getintent().getextras().getstring("username")); tvstore.settext(username); tvid.settext(tvstore.gettext().tostring()); query(); } private void query() { userdb helper = new userdb(this); sqlitedatabase db = helper.getreadabledatabase(); helper.open(); if(helper.getreadabledatabase() == null){ log.i("log activity test", "helper null!!!!!!!!!"); } string user = tvstore.gettext().tostring(); seek { log.i("log activity test", "start db!!"); cursor cursor = db.rawquery("select sex,hospital,blosuger,drink,conctrolweigh,smoke,education,eat user username ='"+user+"'", null); if(cursor!=null){ int rows_num = cursor.getcount(); cursor.movetofirst(); while (!cursor.isafterlast()) { integer id = cursor.getint(cursor.getcolumnindex("id")); tvsex.settext(cursor.getstring(cursor.getcolumnindex("sex"))); tvhospital.settext(cursor.getstring(cursor.getcolumnindex("hospital"))); tvblosuger.settext(cursor.getstring(cursor.getcolumnindex("blosuger"))); tvdrink.settext(cursor.getstring(cursor.getcolumnindex("drink"))); tvconctrolweigh.settext(cursor.getstring(cursor.getcolumnindex("conctrolweigh"))); tvsmoke.settext(cursor.getstring(cursor.getcolumnindex("smoke"))); tveducation.settext(cursor.getstring(cursor.getcolumnindex("education"))); tveat.settext(cursor.getstring(cursor.getcolumnindex("eat"))); cursor.movetonext(); } } } grab (exception ex) { ex.printstacktrace(); } { } } private long exittime = 0; @override public boolean onkeydown(int keycode, keyevent event) { if(keycode == keyevent.keycode_back && event.getaction() == keyevent.action_down){ if((system.currenttimemillis()-exittime) > 2000){ toast.maketext(getapplicationcontext(), "再按一次返回鍵退出", toast.length_short).show(); exittime = system.currenttimemillis(); } else { finish(); system.exit(0); } homecoming true; } homecoming super.onkeydown(keycode, event); } private void findviews(){ btnselback = (button)findviewbyid(r.id.buttonselback); tvartical = (button)findviewbyid(r.id.buttonartical); tvfood = (button)findviewbyid(r.id.buttonfood); tvhealth = (button)findviewbyid(r.id.buttonhealth); tvexcise = (button)findviewbyid(r.id.buttonescise); tvid = (textview)findviewbyid(r.id.tvsid); tvstore = (textview)findviewbyid(r.id.tvstore); tveat = (textview)findviewbyid(r.id.tveat); tvhospital= (textview)findviewbyid(r.id.tvhospital); tvblosuger= (textview)findviewbyid(r.id.tvblosuger); tvconctrolweigh= (textview)findviewbyid(r.id.tvconctrolweigh); tvdrink= (textview)findviewbyid(r.id.tvdrink); tvsmoke= (textview)findviewbyid(r.id.tvsmoke); tvsex= (textview)findviewbyid(r.id.tvsex); tveducation= (textview)findviewbyid(r.id.tveducation); } private void setlisteners(){ //回上一頁 btnselback.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { string username = tvstore.gettext().tostring(); intent intent = new intent(); intent.setclass(selfteachingactivity.this, loginactivity.class); intent.putextra("username", username ); startactivity(intent); selfteachingactivity.this.finish(); } }); //衛教文章 tvartical.setonclicklistener(new onclicklistener() { @override public void onclick(view arg0) { string username = tvstore.gettext().tostring(); intent intent = new intent(); intent.setclass(selfteachingactivity.this, articalactivity.class); intent.putextra("sex", tvsex.gettext().tostring() ); intent.putextra("username", username ); intent.putextra("hospital", tvhospital.gettext().tostring()); intent.putextra("blosuger", tvblosuger.gettext().tostring() ); intent.putextra("drink", tvdrink.gettext().tostring() ); intent.putextra("conctrolweigh", tvconctrolweigh.gettext().tostring()); intent.putextra("smoke", tvsmoke.gettext().tostring()); intent.putextra("education", tveducation.gettext().tostring()); intent.putextra("eat", tveat.gettext().tostring()); startactivity(intent); selfteachingactivity.this.finish(); } }); //食物衛教 tvfood.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { string username = tvstore.gettext().tostring(); intent intent = new intent(); intent.setclass(selfteachingactivity.this, foodactivity.class); intent.putextra("username", username ); intent.putextra("sex", tvsex.gettext().tostring() ); intent.putextra("hospital", tvhospital.gettext().tostring()); intent.putextra("blosuger", tvblosuger.gettext().tostring() ); intent.putextra("drink", tvdrink.gettext().tostring() ); intent.putextra("conctrolweigh", tvconctrolweigh.gettext().tostring()); intent.putextra("smoke", tvsmoke.gettext().tostring()); intent.putextra("education", tveducation.gettext().tostring()); intent.putextra("eat", tveat.gettext().tostring()); startactivity(intent); selfteachingactivity.this.finish(); } }); //健康衛教 tvhealth.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { string username = tvstore.gettext().tostring(); intent intent = new intent(); intent.setclass(selfteachingactivity.this, healthactivity.class); intent.putextra("username", username ); intent.putextra("sex", tvsex.gettext().tostring() ); intent.putextra("hospital", tvhospital.gettext().tostring()); intent.putextra("blosuger", tvblosuger.gettext().tostring() ); intent.putextra("drink", tvdrink.gettext().tostring() ); intent.putextra("conctrolweigh", tvconctrolweigh.gettext().tostring()); intent.putextra("smoke", tvsmoke.gettext().tostring()); intent.putextra("education", tveducation.gettext().tostring()); intent.putextra("eat", tveat.gettext().tostring()); startactivity(intent); selfteachingactivity.this.finish(); } }); //運動衛教 tvexcise.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { string username = tvstore.gettext().tostring(); intent intent = new intent(); intent.setclass(selfteachingactivity.this, exciseactivity.class); intent.putextra("username", username ); intent.putextra("sex", tvsex.gettext().tostring() ); intent.putextra("hospital", tvhospital.gettext().tostring()); intent.putextra("blosuger", tvblosuger.gettext().tostring() ); intent.putextra("drink", tvdrink.gettext().tostring() ); intent.putextra("conctrolweigh", tvconctrolweigh.gettext().tostring()); intent.putextra("smoke", tvsmoke.gettext().tostring()); intent.putextra("education", tveducation.gettext().tostring()); intent.putextra("eat", tveat.gettext().tostring()); startactivity(intent); selfteachingactivity.this.finish(); } }); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.selfteaching, menu); homecoming true; } } problem:
1.i don't info sql no crash
what problem code?
the programme stop in here
cursor cursor = db.rawquery("select sex,hospital,blosuger,drink,conctrolweigh,smoke,education,eat user username ='"+user+"'", null); and null pointer , check db , null , don't know how happen.
plz help me
method phone call
sqlitedatabase db = helper.getreadabledatabase(); returns null due code:
public sqlitedatabase getreadabledatabase() { // todo auto-generated method stub homecoming null; } java android sql
No comments:
Post a Comment