android - How to finish the Activity when I was in Another Acitvity -
when m using shared preference class separated class, i'm going check user login or not in navigation activity class, if first time transfer me in login activity otherwise continue in navigation activity
but problem when i'm going backpressed on login activity should close app transfer me in navigation activity....pls me...
package com.apkglobal.no_dues; import android.content.context; import android.content.intent; import android.content.sharedpreferences; public class shared { sharedpreferences sp; sharedpreferences.editor ed; string filename="himanshu"; int mode=0; context context; string first="first"; public shared(context context) { this.context = context; sp=context.getsharedpreferences(filename,mode); ed=sp.edit(); } public void secondtime() { ed.putboolean(first,true); ed.commit(); } public boolean firsttime() { if(!this.isfirst()) { intent i=new intent(context,loginactivity.class); i.addflags(intent.flag_activity_clear_task); i.setflags(intent.flag_activity_new_task); context.startactivity(i); } return false; } public boolean isfirst() { return sp.getboolean(first,false); } public void getback() { ed.putboolean(first,false); ed.commit(); } } navigationacitivity.class
package com.apkglobal.no_dues; import android.content.dialoginterface; import android.content.intent; import android.content.sharedpreferences; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmenttransaction; import android.support.v7.app.alertdialog; import android.view.view; import android.support.design.widget.navigationview; import android.support.v4.view.gravitycompat; import android.support.v4.widget.drawerlayout; import android.support.v7.app.actionbardrawertoggle; import android.support.v7.app.appcompatactivity; import android.support.v7.widget.toolbar; import android.view.menu; import android.view.menuitem; import android.widget.button; import android.widget.textview; import com.apkglobal.no_dues.fragment.aboutfragment; import com.apkglobal.no_dues.fragment.bookdetailsfragment; import com.apkglobal.no_dues.fragment.feedbackfragment; import com.apkglobal.no_dues.fragment.homefragment; import com.apkglobal.no_dues.fragment.marksfragment; import com.apkglobal.no_dues.fragment.noduesformfragment; public class navigationactivity extends appcompatactivity implements navigationview.onnavigationitemselectedlistener{ button btn_mis,btn_attendence; shared shared; string rollno; sharedpreferences sp; sharedpreferences.editor ed; navigationview navigationview; textview tv_rollno; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); shared = new shared(getapplicationcontext()); shared.firsttime(); setcontentview(r.layout.activity_navigation); btn_attendence = (button) findviewbyid(r.id.btn_attendence); btn_mis=(button)findviewbyid(r.id.btn_mis); tv_rollno = (textview)findviewbyid(r.id.tv_rollno); navigationview = (navigationview) findviewbyid(r.id.nav_view); view header=navigationview.getheaderview(0); tv_rollno = (textview)header.findviewbyid(r.id.tv_rollno); toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar); setsupportactionbar(toolbar); sp=getsharedpreferences("rajput",mode_private); rollno=sp.getstring("rollno",null); tv_rollno.settext(rollno); 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.setnavigationitemselectedlistener(this); defaultselectitem(r.id.nav_homepage); } @override public void onbackpressed() { drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout); if (drawer.isdraweropen(gravitycompat.start)) { drawer.closedrawer(gravitycompat.start); } else { alertdialog.builder ab = new alertdialog.builder(navigationactivity.this); ab.seticon(r.drawable.logo); ab.settitle("exit application"); ab.setmessage("are sure ?"); ab.setcancelable(false); ab.setpositivebutton("yes", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { finish(); } }); ab.setnegativebutton("no", new dialoginterface.onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { dialog.dismiss(); } }); ab.create(); ab.show(); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.navigation, 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) { intent = new intent(getapplicationcontext(), settingactivity.class); startactivity(i); } else if (id == r.id.action_contact) { intent = new intent(getapplicationcontext(), contactactivity.class); startactivity(i); } else if (id == r.id.action_search) { } return super.onoptionsitemselected(item); } @suppresswarnings("statementwithemptybody") @override public boolean onnavigationitemselected(menuitem item) { // handle navigation view item clicks here. defaultselectitem(item.getitemid()); return true; } private void defaultselectitem(int itemid) { fragment fragment = null; switch (itemid) { case r.id.nav_homepage: fragment = new homefragment(); break; case r.id.nav_nodues_form: fragment = new noduesformfragment(); break; case r.id.nav_feedback: fragment = new feedbackfragment(); break; case r.id.nav_marks: fragment = new marksfragment(); break; case r.id.nav_book: fragment = new bookdetailsfragment(); break; case r.id.nav_about: fragment = new aboutfragment(); break; case r.id.nav_fees_detail: intent intent = new intent(navigationactivity.this,feesdetail.class); startactivity(intent); break; case r.id.nav_share: break; case r.id.nav_logout: shared.getback(); intent = new intent(getapplicationcontext(), loginactivity.class); startactivity(i); finish(); break; } if (fragment != null) { fragmenttransaction fragmenttransaction = getsupportfragmentmanager().begintransaction().replace(r.id.frame, fragment); fragmenttransaction.commit(); } drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout); drawer.closedrawer(gravitycompat.start); } }
you have take activity param instead of context. after starting activity, should finish current activity.
your code should this.
package com.apkglobal.no_dues; import android.content.intent; import android.content.sharedpreferences; public class shared { sharedpreferences sp; sharedpreferences.editor ed; string filename="himanshu"; int mode=0; activity activity; string first="first"; public shared(activity activity) { this.activity= context; sp=activity.getsharedpreferences(filename,mode); ed=sp.edit(); } public void secondtime() { ed.putboolean(first,true); ed.commit(); } public boolean firsttime() { if(!this.isfirst()) { intent i=new intent(activity,loginactivity.class); i.addflags(intent.flag_activity_clear_task); i.setflags(intent.flag_activity_new_task); activity.startactivity(i); activity.finish(); } return false; } public boolean isfirst() { return sp.getboolean(first,false); } public void getback() { ed.putboolean(first,false); ed.commit(); } } hope helps:)
Comments
Post a Comment