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