insert in database in fragment by button in android studio -
my app contain fragment class , db class , mainactivity class.......when click insert button show "data not inserted",,,,,,i not understand......where problem...........this code: mainactivity class:
package ir.hashem.navfragtest; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); floatingactionbutton fab = (floatingactionbutton) findviewbyid(r.id.fab); fab.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { snackbar.make(view, "replace own action", snackbar.length_long) .setaction("action", null).show(); } }); drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout); actionbardrawertoggle toggle = new actionbardrawertoggle( this, drawer, toolbar, r.string.navigation_drawer_open, r.string.navigation_drawer_close); drawer.setdrawerlistener(toggle); toggle.syncstate(); navigationview navigationview = (navigationview) findviewbyid(r.id.nav_view); navigationview.setnavigationitemselectedlistener(this); } @override public void onbackpressed() { drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout); if (drawer.isdraweropen(gravitycompat.start)) { drawer.closedrawer(gravitycompat.start); } else { super.onbackpressed(); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } @suppresswarnings("statementwithemptybody") @override public boolean onnavigationitemselected(menuitem item) { // handle navigation view item clicks here. int id = item.getitemid(); if (id == r.id.nav_camera) { fr1 fragment = new fr1(); android.support.v4.app.fragmenttransaction fragmenttransaction = getsupportfragmentmanager().begintransaction(); fragmenttransaction.replace(r.id.fragment11, fragment); fragmenttransaction.commit(); } else if (id == r.id.nav_gallery) { } else if (id == r.id.nav_slideshow) { } drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout); drawer.closedrawer(gravitycompat.start); return true; } }
fragment class
package ir.hashem.navfragtest; public class fr1 extends fragment { public fr1() { // required empty public constructor } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { v=inflater.inflate(r.layout.fr1, container, false); mydb=new database(getactivity()); btninsert= (button) v.findviewbyid(r.id.btninsert); btndelete= (button) v.findviewbyid(r.id.btndelete); name= (edittext) v.findviewbyid(r.id.etjens); // id= (edittext) v.findviewbyid(r.id.edittext3); btndelete.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { id= (edittext) v.findviewbyid(r.id.etid); integer isdeleted=mydb.delete(id.gettext().tostring()); if(isdeleted>0) toast.maketext(fr1.this.getactivity(), "data deleted", toast.length_long).show(); else toast.maketext(fr1.this.getactivity(), "data not deleted", toast.length_long).show(); } }); btninsert.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { string n=name.gettext().tostring(); boolean isinserted = mydb.inserdata(n); if (isinserted == true) toast.maketext(fr1.this.getactivity(), "data inserted", toast.length_long).show(); else toast.maketext(fr1.this.getactivity(), "data not inserted", toast.length_long).show(); } }); return v; } } . . .
database class
package ir.hashem.navfragtest; public class database extends sqliteopenhelper{ public static final string database_name="market"; public static final string tablename="jens"; public static final string col1="id"; public static final string col2="name"; public database(context context) { super(context, database_name, null, 1); } @override public void oncreate(sqlitedatabase db) { db.execsql("create table jens (id integer primary key autoincrement,name text not null)"); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { db.execsql("drop table if exists jens"); oncreate(db); } public boolean inserdata(string n) { sqlitedatabase db=this.getwritabledatabase(); contentvalues contentvalues=new contentvalues(); contentvalues.put("name",n); long result=db.insert("jens", null, contentvalues); if (result == -1) return false; else return true; } public cursor getalldata() { sqlitedatabase db=this.getwritabledatabase(); cursor res=db.rawquery("select * jens",null); return res; } public boolean updatedata(string id,string n) { sqlitedatabase db=this.getwritabledatabase(); contentvalues contentvalues=new contentvalues(); contentvalues.put(col1,id); contentvalues.put(col2,n); db.update(tablename,contentvalues,"id = ?",new string[] {id}); return true; } public integer delete(string id) { sqlitedatabase db=this.getwritabledatabase(); return db.delete(tablename,"id = ?",new string[] {id}); } }
use database instance. add database class.
private static database databaseinstance = null; public static database getinstance(context context) { if (databaseinstance == null) { databaseinstance = new database(context); } return databaseinstance; }
in fragment class initialize database variable this
mydb = database.getinstance(getactivity());
Comments
Post a Comment