android - ImageButton and NullPointerException -


could nullpointerexception because button referencing nested inside several layouts? time reference browseeditbtn exception. it's simple button! come'on.

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <tablelayout  android:layout_width="wrap_content"  android:layout_height="wrap_content" android:orientation="horizontal"  android:stretchcolumns="*"> <!-- <include layout="@layout/mydesctextview" /> --> <tablerow  android:id="@+id/tablerow1"  android:layout_width="wrap_content" android:layout_height="wrap_content"  android:orientation="horizontal">          <textview          android:text="textview"          android:layout_width="wrap_content"         android:layout_gravity="left|center_vertical"          android:id="@+id/txtitem"          android:textsize="20dip"           ></textview>            <imagebutton          android:src="@drawable/editbtn"         android:layout_marginright="10dip"          android:layout_gravity="right|center_vertical"         android:id="@+id/browseeditbtn"         android:background="@drawable/my_group_statelist"         ></imagebutton>  </tablerow> </tablelayout> </linearlayout> 

source code (the button called in main oncreate()):

public class browseactivity extends expandablelistactivity {  final private string[] ascolumnstoreturn = {         items.items_table_name + "." + items.items_item,         items.items_table_name + "." + items.items_desc,         items.items_table_name + "." + items.items_manu,         items.items_table_name + "." + items.items_id };  @suppresswarnings("unchecked") @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.browse);     dbhelper dbh = new dbhelper(this.getapplicationcontext());     sqlitedatabase db = dbh.getwritabledatabase();     sqlitequerybuilder querybuilder = new sqlitequerybuilder();     querybuilder.settables(items.items_table_name);      expandablelistview browseview = (expandablelistview)    findviewbyid(android.r.id.list);     button editbrowsebtn = (button) findviewbyid(r.id.browseeditbtn);      cursor mcursor = querybuilder.query(db, ascolumnstoreturn, null, null,             null, null, items.default_sort_order);     startmanagingcursor(mcursor);      simpleexpandablelistadapter madapter = new simpleexpandablelistadapter(             this, creategroup(), r.layout.row, r.layout.row, new string[] {                     items.items_item, items.items_desc }, new int[] {                     r.id.txtitem, r.id.dscitem }, createchildren(),             r.layout.exprow, new string[] { items.items_desc,                     items.items_manu }, new int[] { r.id.dscitem,                     r.id.manuitem });     browseview.setadapter(madapter);      editbrowsebtn.setonclicklistener(new view.onclicklistener() {          @override         public void onclick(view v) {             intent intent = new intent(browseactivity.this,                     edititemactivity.class);             startactivity(intent);          }     });  }  @override public boolean oncreateoptionsmenu(menu menu) {     super.oncreateoptionsmenu(menu);     menu.add("add item").setintent(new intent(this, additemactivity.class));      return super.oncreateoptionsmenu(menu); }  @suppresswarnings("rawtypes") public list creategroup() {     dbhelper dbh = new dbhelper(this.getapplicationcontext());     sqlitedatabase db = dbh.getwritabledatabase();     sqlitequerybuilder querybuilder = new sqlitequerybuilder();     querybuilder.settables(items.items_table_name);      cursor mcursor = querybuilder.query(db, new string[] {             items.items_item, items.items_desc }, null, null, null, null,             items.default_sort_order);     startmanagingcursor(mcursor);      arraylist<hashmap<string, string>> grouplist = new arraylist<hashmap<string,   string>>();     mcursor.movetofirst();     while (!(mcursor.isafterlast())) {          hashmap<string, string> groupmap = new hashmap<string, string>();         groupmap.put(items.items_item,                 mcursor.getstring(mcursor.getcolumnindex(items.items_item)));         groupmap.put(items.items_desc,                       mcursor.getstring(mcursor.getcolumnindex(items.items_desc)));          grouplist.add(groupmap);         mcursor.movetonext();     }      return (list) grouplist; }  @suppresswarnings("rawtypes") public list createchildren() {     dbhelper dbh = new dbhelper(this.getapplicationcontext());     sqlitedatabase db = dbh.getwritabledatabase();     sqlitequerybuilder querybuilder = new sqlitequerybuilder();     querybuilder.settables(items.items_table_name);      cursor mcursor = querybuilder.query(db, new string[] {             items.items_item, items.items_desc, items.items_manu }, null,             null, null, null, items.default_sort_order);     startmanagingcursor(mcursor);     mcursor.movetofirst();      arraylist<arraylist<hashmap<string, string>>> childlist = new arraylist<arraylist<hashmap<string, string>>>();      while (!(mcursor.isafterlast())) {          arraylist<hashmap<string, string>> childlistdesc = new                      arraylist<hashmap<string, string>>();          (int = 0; < 1; i++) {             hashmap<string, string> childmap = new hashmap<string, string>();             childmap.put(items.items_desc, mcursor.getstring(mcursor                     .getcolumnindex(items.items_desc)));             childmap.put(items.items_manu, mcursor.getstring(mcursor                     .getcolumnindex(items.items_manu)));              childlistdesc.add(childmap);          }          childlist.add(childlistdesc);         mcursor.movetonext();     }      return (list) childlist; } } 

and logcat, think...

06-30 13:01:29.390: error/androidruntime(9189): fatal exception: main 06-30 13:01:29.390: error/androidruntime(9189): java.lang.runtimeexception: unable start activity componentinfo{com.simplydesign.mdk/com.simplydesign.mdk.browseactivity}: java.lang.nullpointerexception 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.activitythread.performlaunchactivity(activitythread.java:2663) 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2679) 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.activitythread.access$2300(activitythread.java:125) 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.activitythread$h.handlemessage(activitythread.java:2033) 06-30 13:01:29.390: error/androidruntime(9189): @ android.os.handler.dispatchmessage(handler.java:99) 06-30 13:01:29.390: error/androidruntime(9189): @ android.os.looper.loop(looper.java:123) 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.activitythread.main(activitythread.java:4627) 06-30 13:01:29.390: error/androidruntime(9189): @ java.lang.reflect.method.invokenative(native method) 06-30 13:01:29.390: error/androidruntime(9189): @ java.lang.reflect.method.invoke(method.java:521) 06-30 13:01:29.390: error/androidruntime(9189): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:858) 06-30 13:01:29.390: error/androidruntime(9189): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) 06-30 13:01:29.390: error/androidruntime(9189): @ dalvik.system.nativestart.main(native method) 06-30 13:01:29.390: error/androidruntime(9189): caused by: java.lang.nullpointerexception 06-30 13:01:29.390: error/androidruntime(9189): @ com.simplydesign.mdk.browseactivity.oncreate(browseactivity.java:62) 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1049) 06-30 13:01:29.390: error/androidruntime(9189): @ android.app.activitythread.performlaunchactivity(activitythread.java:2627) 06-30 13:01:29.390: error/androidruntime(9189): ... 11 more

edit_01

public void doaction(view v) {      startactivity(new intent(getapplicationcontext(),             edititemactivity.class));  } 

i have used other buttons in past point edititemactivity , have worked fine.

what name of layout xml file posted? doesn't appear browse.xml because 1 has expandablelistview in it. ids reference in java code must appear in content view set; otherwise, must inflate view yourself.

edit

you add like

android:onclick="doaction" 

to xml of imagebutton.

then have doaction(view v) method in activity onclick actions.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -