Wednesday 15 September 2010

android - Checkbox's - Application Crashes on startup -



android - Checkbox's - Application Crashes on startup -

i next sample http://examples.javacodegeeks.com/android/core/ui/checkbox-ui/android-checkbox-example/ add together checkbox's add together every time add together addlisteneronchkwindows(); , addlisteneronbutton(); application crashes on startup. heres code:

public class mainactivity extends activity { private static final list<string> permissions = arrays.aslist("publish_actions"); private static final string pending_publish_key = "pendingpublishreauthorization"; private boolean pendingpublishreauthorization = false; private drawerlayout mdrawerlayout; private listview mdrawerlist; private actionbardrawertoggle mdrawertoggle; // nav drawer title private charsequence mdrawertitle; // used store app title private charsequence mtitle; // slide menu items private string[] navmenutitles; private typedarray navmenuicons; private arraylist<navdraweritem> navdraweritems; private navdrawerlistadapter adapter; private button sharebutton; private checkbox linux, macos, windows; private button button; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); addlisteneronchkwindows(); addlisteneronbutton(); mtitle = mdrawertitle = gettitle(); sendnotification(mtitle.tostring()); // load slide menu items navmenutitles = getresources().getstringarray(r.array.nav_drawer_items); // nav drawer icons resources navmenuicons = getresources() .obtaintypedarray(r.array.nav_drawer_icons); mdrawerlayout = (drawerlayout) findviewbyid(r.id.drawer_layout); mdrawerlist = (listview) findviewbyid(r.id.list_slidermenu); navdraweritems = new arraylist<navdraweritem>(); // adding nav drawer items array // home navdraweritems.add(new navdraweritem(navmenutitles[0], navmenuicons.getresourceid(0, -1))); // find people navdraweritems.add(new navdraweritem(navmenutitles[1], navmenuicons.getresourceid(1, -1))); // photos navdraweritems.add(new navdraweritem(navmenutitles[2], navmenuicons.getresourceid(2, -1))); // communities, add together counter here // pages navdraweritems.add(new navdraweritem(navmenutitles[4], navmenuicons.getresourceid(4, -1))); // what's hot, add together counter here // recycle typed array navmenuicons.recycle(); mdrawerlist.setonitemclicklistener(new slidemenuclicklistener()); // setting nav drawer list adapter adapter = new navdrawerlistadapter(getapplicationcontext(), navdraweritems); mdrawerlist.setadapter(adapter); // enabling action bar app icon , behaving toggle button getactionbar().setdisplayhomeasupenabled(true); getactionbar().sethomebuttonenabled(true); mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout, r.drawable.ic_drawer, //nav menu toggle icon r.string.app_name, // nav drawer open - description accessibility r.string.app_name // nav drawer close - description accessibility ) { public void ondrawerclosed(view view) { getactionbar().settitle(mtitle); // calling onprepareoptionsmenu() show action bar icons invalidateoptionsmenu(); } public void ondraweropened(view drawerview) { getactionbar().settitle(mdrawertitle); // calling onprepareoptionsmenu() hide action bar icons invalidateoptionsmenu(); } }; mdrawerlayout.setdrawerlistener(mdrawertoggle); if (savedinstancestate == null) { // on first time display view first nav item displayview(0); } } /** * slide menu item click listener * */ private class slidemenuclicklistener implements listview.onitemclicklistener { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { // display view selected nav drawer item displayview(position); } } @override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); homecoming true; } @override public boolean onoptionsitemselected(menuitem item) { // toggle nav drawer on selecting action bar app icon/title if (mdrawertoggle.onoptionsitemselected(item)) { homecoming true; } // handle action bar actions click switch (item.getitemid()) { case r.id.action_settings: homecoming true; default: homecoming super.onoptionsitemselected(item); } } /* * * called when invalidateoptionsmenu() triggered */ @override public boolean onprepareoptionsmenu(menu menu) { // if nav drawer opened, hide action items boolean draweropen = mdrawerlayout.isdraweropen(mdrawerlist); menu.finditem(r.id.action_settings).setvisible(!draweropen); homecoming super.onprepareoptionsmenu(menu); } /** * diplaying fragment view selected nav drawer list item * */ private void displayview(int position) { // update main content replacing fragments fragment fragment = null; switch (position) { case 0: fragment = new homefragment(); break; case 1: fragment = new posted(); break; case 2: fragment = new settings(); break; case 3: fragment = new about(); break; default: break; } if (fragment != null) { fragmentmanager fragmentmanager = getfragmentmanager(); fragmentmanager.begintransaction() .replace(r.id.frame_container, fragment).commit(); // update selected item , title, close drawer mdrawerlist.setitemchecked(position, true); mdrawerlist.setselection(position); settitle(navmenutitles[position]); mdrawerlayout.closedrawer(mdrawerlist); } else { // error in creating fragment log.e("mainactivity", "error in creating fragment"); } } @override public void settitle(charsequence title) { mtitle = title; getactionbar().settitle(mtitle); } /** * when using actionbardrawertoggle, must phone call during * onpostcreate() , onconfigurationchanged()... */ @override protected void onpostcreate(bundle savedinstancestate) { super.onpostcreate(savedinstancestate); // sync toggle state after onrestoreinstancestate has occurred. mdrawertoggle.syncstate(); } @override public void onconfigurationchanged(configuration newconfig) { super.onconfigurationchanged(newconfig); // pass configuration alter drawer toggls mdrawertoggle.onconfigurationchanged(newconfig); } /** * send notification message */ //public void sendnotification(string title) { //string content = "tap share"; //notificationcompat.builder builder = new notificationcompat.builder( // this).setcontenttitle(title).setcontenttext(content) // .setsmallicon(r.drawable.ic_launcher).setautocancel(false).setongoing(true); /// notificationmanager nmgr = (notificationmanager) getsystemservice(context.notification_service); // intent resultintent = new intent(this, mainactivity.class); // taskstackbuilder stackbuilder = taskstackbuilder.create(this); // stackbuilder.addparentstack(mainactivity.class); // adds intent starts activity top of stack //stackbuilder.addnextintent(resultintent); // pendingintent resultpendingintent = /// stackbuilder.getpendingintent( //// 0, // pendingintent.flag_update_current // ); //builder mbuilder = null; //mbuilder.setcontentintent(resultpendingintent); //nmgr.notify(1, builder.build()); // //} public void sendnotification(string title) { string content = "tap share"; notificationcompat.builder mbuilder = new notificationcompat.builder( this).setcontenttitle(title).setcontenttext(content) .setsmallicon(r.drawable.ic_launcher).setautocancel(false).setongoing(true); // creates explicit intent activity in app intent resultintent = new intent(this, mainactivity.class); // stack builder object contain artificial stack // started activity. // ensures navigating backward activity leads out of // application home screen. taskstackbuilder stackbuilder = taskstackbuilder.create(this); // adds stack intent (but not intent itself) stackbuilder.addparentstack(mainactivity.class); // adds intent starts activity top of stack stackbuilder.addnextintent(resultintent); pendingintent resultpendingintent = stackbuilder.getpendingintent( 0, pendingintent.flag_update_current ); mbuilder.setcontentintent(resultpendingintent); notificationmanager mnotificationmanager = (notificationmanager) getsystemservice(context.notification_service); // mid allows update notification later on. mnotificationmanager.notify(1, mbuilder.build()); } public void addlisteneronchkwindows() { windows = (checkbox) findviewbyid(r.id.sharebutton); windows.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { if (((checkbox) v).ischecked()) { toast.maketext(mainactivity.this,"bro, seek linux :)", toast.length_long).show(); } } }); } public void addlisteneronbutton() { linux = (checkbox) findviewbyid(r.id.fb); macos = (checkbox) findviewbyid(r.id.tt); windows = (checkbox) findviewbyid(r.id.tr); button = (button) findviewbyid(r.id.sharebutton); button.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { stringbuffer result = new stringbuffer(); result.append("linux check : ").append(linux.ischecked()); result.append("\nmac os check : ").append(macos.ischecked()); result.append("\nwindows check :").append(windows.ischecked()); toast.maketext(mainactivity.this, result.tostring(), toast.length_long).show(); } }); } }

the code checkbox @ bottom

here's stack trace: https://drive.google.com/file/d/0b98htuh05n20exbin3p6mtbhvhm/view?usp=sharing

and heres xml

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.example.openshareproo.mainactivity$placeholderfragment" > <textview android:id="@+id/section_label" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <button android:id="@+id/sharebutton" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignbottom="@+id/edittext1" android:layout_alignparentright="true" android:text="@string/share" /> <imageview android:id="@+id/imageview1" android:layout_width="70dp" android:layout_height="70dp" android:layout_alignleft="@+id/section_label" android:layout_aligntop="@+id/fb" android:src="@drawable/ic_fb" /> <imageview android:id="@+id/imageview2" android:layout_width="70dp" android:layout_height="70dp" android:layout_alignparentleft="true" android:layout_aligntop="@+id/textview2" android:src="@drawable/ic_tt" /> <checkbox android:id="@+id/tt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbottom="@+id/imageview2" android:layout_alignright="@+id/view01" android:text="tap share" android:checked="true" /> <checkbox android:id="@+id/checkbox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbottom="@+id/imageview1" android:layout_alignright="@+id/view1" android:text="tap share" /> <edittext android:id="@+id/edittext1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/section_label" android:layout_aligntop="@+id/section_label" android:layout_toleftof="@+id/button3" android:ems="10" > <requestfocus /> </edittext> <checkbox android:id="@+id/tr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbottom="@+id/imageview3" android:layout_alignright="@+id/view01" android:text="tap share" /> <view android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_alignleft="@+id/imageview2" android:layout_below="@+id/imageview1" android:layout_margintop="14dp" android:background="@android:color/darker_gray" /> <button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignbottom="@+id/button1" android:layout_toleftof="@+id/button1" android:text="web" android:onclick="buttonme" /> <textview android:id="@+id/textview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/fb" android:layout_below="@+id/view1" android:layout_margintop="10dp" android:text="twitter" android:textappearance="?android:attr/textappearancelarge" android:textsize="35dp" /> <textview android:id="@+id/fb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/button3" android:layout_margintop="34dp" android:layout_toleftof="@+id/checkbox1" android:text="facebook" android:textappearance="?android:attr/textappearancelarge" android:textsize="35dp" /> <view android:id="@+id/view01" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_alignleft="@+id/imageview3" android:layout_below="@+id/imageview2" android:layout_margintop="14dp" android:background="@android:color/darker_gray" /> <textview android:id="@+id/textview3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/view01" android:layout_margintop="11dp" android:layout_torightof="@+id/imageview2" android:text="tumblr" android:textappearance="?android:attr/textappearancelarge" android:textsize="35dp" /> <imageview android:id="@+id/imageview3" android:layout_width="70dp" android:layout_height="70dp" android:layout_aligntop="@+id/textview3" android:layout_toleftof="@+id/textview3" android:src="@drawable/ic_tr" /> </relativelayout>

a stack trace useful reply question. however, i'm willing bet problem in xml layout defined sharebutton button, while in code in addlisteneronchkwindows() cast checkbox. wanted utilize r.id.tr instead of r.id.sharebutton in method?

update: in addlisteneronchkwindows() alter line:

windows = (checkbox) findviewbyid(r.id.sharebutton);

to:

windows = (checkbox) findviewbyid(r.id.tr);

android checkbox

No comments:

Post a Comment