this question has answer here:
- what nullpointerexception, , how fix it? 12 answers
i'm trying create activity can select particular row listview being retrived database can manipulate when i'm selecting row application unfortunately stops.
here getting android.content.res.resources$notfoundexception: string resource id #0x0 while trying select row database i'm getting runtime exception.
this databasehelper class
databasehelper.java package com.example.ashwanislaptop.expensemanager; import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; import android.util.log; import java.util.arraylist; import java.util.list; public class databasehelper extends sqliteopenhelper { public static final string database_name="transaction.db"; public static final string table_name="transaction_table"; public static final string col_1="id"; public static final string col_2="price"; public static final string col_3="date"; public static final string col_4="time"; public static final string col_5="description"; public static final string col_6="category"; public static final string col_7="payment_mode"; private static final string tag="databasehelper"; public databasehelper(context context) { super(context, database_name, null, 1); } @override public void oncreate(sqlitedatabase db) { db.execsql("create table if not exists "+table_name+"(id integer primary key autoincrement,price integer not null,date text not null,time text not null,description text not null,category text not null,payment_mode text not null);"); } @override public void onupgrade(sqlitedatabase db, int i, int i1) { db.execsql("drop table if exists transaction_table"); oncreate(db); } void insertdata(transaction t){ sqlitedatabase db=getwritabledatabase(); contentvalues cv=new contentvalues(); cv.put(col_2,t.getprice()); cv.put(col_3,t.getdate()); cv.put(col_4,t.gettime()); cv.put(col_5,t.getdescription()); cv.put(col_6,t.getcategory()); cv.put(col_7,t.getpayment_mode()); db.insert(table_name,null,cv); db.close(); } public arraylist<transaction> getalltransaction() { sqlitedatabase db = getreadabledatabase(); log.i(tag, "getalltransaction: getting transaction record"); cursor c = db.rawquery("select * transaction_table", null); if (c.movetofirst()) { arraylist<transaction> list = new arraylist<>(); { transaction t = new transaction(c.getstring(1),c.getstring(2), c.getstring(5)); list.add(t); log.i(tag, "getalltranscrecords: 1 record retrieved"); }while (c.movetonext()); return list; } else { log.i(tag,"no record found"); db.close(); return null; } } [getting runtime error while calling transaction_detail.java] ***transaction getalltransactionssecond(int idd) { log.i(tag, "getalltransactionssecond: "+idd); sqlitedatabase db = getreadabledatabase(); log.i(tag, "getalltransaction: getting transaction record of id "+idd); cursor c = db.rawquery("select * transaction_table id="+idd+";", null);
[the execution crashes @ point how send data transaction_details can print data in textviews] transaction t = new transaction(c.getstring(1),c.getstring(2),c.getstring(3),c.getstring(4),c.getstring(5),c.getstring(6)); log.i(tag, "getalltranscrecords: 1 record retrieved"); // log.i(tag,"no record found"); db.close(); return t; }***
public arraylist<transaction> getalltransactioncategorywise(){ sqlitedatabase db=getreadabledatabase(); log.i(tag,"getalltransaction: getting transaction record"); cursor c=db.rawquery("select * transaction_table order "+col_6+";",null); if(c.movetofirst()){ arraylist<transaction> list=new arraylist<>(); do{ transaction t=new transaction(c.getstring(1),c.getstring(2),c.getstring(5)); list.add(t); log.i(tag,"getalltranscrecords: 1 record retrieved"); }while (c.movetonext()); return list; } else { log.i(tag,"no record found"); db.close(); return null; } } public arraylist<transaction> getalltransactiondatewise(){ sqlitedatabase db=getreadabledatabase(); log.i(tag,"getalltransaction: getting transaction record"); cursor c=db.rawquery("select * transaction_table order "+col_3+" desc",null); if(c.movetofirst()){ arraylist<transaction> list=new arraylist<>(); do{ transaction t=new transaction(c.getstring(1),c.getstring(2),c.getstring(5)); list.add(t); log.i(tag,"getalltranscrecords: 1 record retrieved"); }while (c.movetonext()); return list; } else { log.i(tag,"no record found"); db.close(); return null; } } }
[this transaction details class]
transaction detail.java package com.example.ashwanislaptop.expensemanager; import android.content.intent; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.util.log; import android.widget.textview; import java.util.arraylist; public class transaction_details extends appcompatactivity { private textview txtid,txtprice,txtdate,txttime,txtcateg,txtpayment,txtdecription; private databasehelper ta; public static final string tag="trasaction detail"; public int sentid; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_transaction__details); log.i(tag, "oncreate: before intent"); intent i1=getintent(); sentid=i1.getintextra("string",0); log.i(tag, "oncreate: after intent "+sentid); txtid=(textview)findviewbyid(r.id.txtid); txtdate=(textview)findviewbyid(r.id.txtdate); txttime=(textview)findviewbyid(r.id.txttime); txtcateg=(textview)findviewbyid(r.id.txtcateg); txtpayment=(textview)findviewbyid(r.id.txtpayment); txtdecription=(textview)findviewbyid(r.id.txtdescription); ta=new databasehelper(this);
[ i'm able retrieve data]
**transaction details=ta.getalltransactionssecond(sentid);** txtid.settext(details.getid()); txtdate.settext(details.getdate()); txttime.settext(details.gettime()); txtcateg.settext(details.getcategory()); txtprice.settext(details.getprice()); txtpayment.settext(details.getpayment_mode()); txtdecription.settext(details.getdescription()); } } transaction.java package com.example.ashwanislaptop.expensemanager; public class transaction { private int id; private string price,date,time,description,category,payment_mode; public transaction() { } public transaction(int id, string price, string date, string time, string description, string category, string payment_mode) { this.id = id; this.price = price; this.date = date; this.time = time; this.description = description; this.category = category; this.payment_mode = payment_mode; } public transaction(string price, string date, string time, string description, string category, string payment_mode) { this.price = price; this.date = date; this.time = time; this.description = description; this.category = category; this.payment_mode = payment_mode; } public transaction(string price, string date, string category) { this.category = category; this.date = date; this.price = price; } public int getid() { return id; } public void setid(int id) { this.id = id; } public string getprice() { return price; } public void setprice(string price) { this.price = price; } public string getdate() { return date; } public void setdate(string date) { this.date = date; } public string gettime() { return time; } public void settime(string time) { this.time = time; } public string getdescription() { return description; } public void setdescription(string description) { this.description = description; } public string getcategory() { return category; } public void setcategory(string category) { this.category = category; } public string getpayment_mode() { return payment_mode; } public void setpayment_mode(string payment_mode) { this.payment_mode = payment_mode; } }
[this alltransaction class]
alltansactionfragment.java package com.example.ashwanislaptop.expensemanager; import android.content.intent; import android.os.bundle; import android.support.annotation.nullable; import android.support.v4.app.fragment; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.listview; import android.widget.toast; import java.text.simpledateformat; import java.util.arraylist; import java.util.collection; import java.util.collections; import java.util.comparator; import java.util.list; /** * created welcome on 06-aug-16. */ public class alltransactionfragment extends fragment { private static final string tag="alltransactionfragment"; private listview listview; private databasehelper ta=null; //private arrayadapter<string> aa=null; @nullable @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view vu=inflater.inflate(r.layout.alltransactionlistview,container,false); listview=(listview)vu.findviewbyid(r.id.lvtransaction); ta=new databasehelper(getactivity()); log.i(tag, "oncreateview:"+ta); arraylist<transaction> list=ta.getalltransactiondatewise(); collections.sort(list, new comparator<transaction>() { @override public int compare(transaction t1, transaction t2) { simpledateformat dateformat=new simpledateformat("dd-mm-yyyy"); if(t1.getdate()==null || t2.getdate()==null) return 0; return t1.getdate().compareto(t2.getdate()); } }); transactionlistadapter aa=new transactionlistadapter(getactivity(),list); listview.setadapter(aa); listview.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> adapterview, view view, int i, long l) { log.i(tag, " onitemclick: "); toast.maketext(getactivity(),"clicked on:"+i,toast.length_short).show(); intent ii=new intent(getactivity(),transaction_details.class); ii.putextra("string",i); log.i(tag, "onitemclick: after"); startactivity(ii); } }); return vu; } }
initialize databasehelper
. null.
Comments
Post a Comment