java - Send back to MainActivity after logged in to Facebook -
java - Send back to MainActivity after logged in to Facebook -
i followed facebook tutorial create loginbutton app, , works login, have questions need help guys.
i have 1 activity & 1 fragment. when start app, see png-image logo, plus 'login facebook' button. when press login button, sent facebook auth, , after log in send mainactivity again.
now mainactivity have logo , facebook button says 'log out'. fine, question is:
what best thing after logged in??
create new class sent after login, or send mainactivity? real programmer after auth?
and if improve send mainactivity, how can remove logo png image after login? mean, nice have before login, after login, image should gone. same thing facebook logout button, how remove it, or atleast set somewhere else? though create actionbar logout button there.
this core utilize activity & fragment. so, should new class send user after login, or should send user mack activity, , if yes, how remove logo/logout button after logged in? give thanks you.
edit:
if best way create new class , send user new class after login, in code should write that? tried onclicklistener, never sends user new class after login. give thanks you.
loginactivity.
import android.os.bundle; import android.support.v4.app.fragmentactivity; import com.facebook.widget.loginbutton; public class loginactivity extends fragmentactivity { private loginfragment loginfragment; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); if (savedinstancestate == null) { // add together fragment on initial activity setup loginfragment = new loginfragment(); getsupportfragmentmanager() .begintransaction() .add(android.r.id.content, loginfragment) .commit(); } else { // or set fragment restored state info loginfragment = (loginfragment) getsupportfragmentmanager() .findfragmentbyid(android.r.id.content); } } }
loginfragment.
public class loginfragment extends fragment { private static final string tag = "loginfragment"; private uilifecyclehelper uihelper; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); uihelper = new uilifecyclehelper(getactivity(), callback); uihelper.oncreate(savedinstancestate); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.activity_login, container, false); loginbutton authbutton = (loginbutton) view.findviewbyid(r.id.authbutton); authbutton.setfragment(this); authbutton.setreadpermissions(arrays.aslist("public_profile" , "user_birthday" , "user_friends")); homecoming view; } private session.statuscallback callback = new session.statuscallback() { @override public void call(session session, sessionstate state, exception exception) { onsessionstatechange(session, state, exception); } }; private void onsessionstatechange(session session, sessionstate state, exception exception) { if (state.isopened()) { log.i(tag, "logged in..."); } else if (state.isclosed()) { log.i(tag, "logged out..."); } } @override public void onresume() { super.onresume(); // scenarios main activity launched , user // session not null, session state alter notification // may not triggered. trigger if it's open/closed. session session = session.getactivesession(); if (session != null && (session.isopened() || session.isclosed()) ) { onsessionstatechange(session, session.getstate(), null); } uihelper.onresume(); } @override public void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); uihelper.onactivityresult(requestcode, resultcode, data); } @override public void onpause() { super.onpause(); uihelper.onpause(); } @override public void ondestroy() { super.ondestroy(); uihelper.ondestroy(); } @override public void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); uihelper.onsaveinstancestate(outstate); } }
edit 2:
i think got work. did, dont know if right or not.
private void onsessionstatechange(session session, sessionstate state, exception exception) { if (state.isopened()) { log.i(tag, "logged in..."); intent intent = new intent(getactivity(), mainactivity.class); startactivity(intent); finish();
and finish(); did.
private void finish() { }
try following:
private void onsessionstatechange(session session, sessionstate state, exception exception) { if (state.isopened()) { log.i(tag, "logged in..."); intent intent = new intent(context, newactivity.class); context.startactivity(intent); finish(); // button shouldn't bring fragment } else if (state.isclosed()) { log.i(tag, "logged out..."); } }
java android facebook-graph-api authentication android-studio
Comments
Post a Comment