उपयोगकर्ता एक बटन पर क्लिक करने के बाद फेसबुक पर लॉगिन करने का प्रयास कर रहा है और फिर एक बार सफलतापूर्वक लॉग इन हो जाने पर, नई गतिविधि बनाई जाती है।एक नई गतिविधि खोलने के लिए फेसबुक पर एक बटन लॉग इन करें
यह अब तक की मुख्य गतिविधि का कोड है!
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;
import com.facebook.LoggingBehavior;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.Settings;
public class MainActivity extends Activity {
@SuppressWarnings("unused")
private static final String URL_PREFIX_FRIENDS = "https://graph.facebook.com/me/friends?access_token=";
private Session.StatusCallback statusCallback = new SessionStatusCallback();
private ImageButton fbImgButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fbImgButton = (ImageButton)findViewById(R.id.imageView2);
Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if(session == null) {
if(savedInstanceState != null) {
session = Session.restoreSession(this, null, statusCallback, savedInstanceState);
}
if(session== null) {
session = new Session(this);
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
}
}
updateView();
}
@Override
public void onStart() {
super.onStart();
Session.getActiveSession().addCallback(statusCallback);
}
@Override
public void onStop() {
super.onStop();
Session.getActiveSession().removeCallback(statusCallback);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Session session = Session.getActiveSession();
Session.saveSession(session, outState);
}
private void updateView() {
Session session = Session.getActiveSession();
if(session.isOpened()) {
Toast.makeText(getApplicationContext(), "Logged in....", Toast.LENGTH_LONG).show();
fbImgButton.setOnClickListener(new OnClickListener() {
public void onClick(View view) { loginfb(); }
});
} else {
fbImgButton.setOnClickListener(new OnClickListener() {
public void onClick(View view) { onClickLogin(); }
});
}
}
public void loginfb() {
//start the new activity here
//Toast.makeText(getApplicationContext(), "Works first", Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, SelectionFragment.class);
MainActivity.this.startActivity(intent);
}
private void onClickLogin() {
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
} else {
Session.openActiveSession(this, true, statusCallback);
}
Intent intent = new Intent(MainActivity.this, SelectionFragment.class);
MainActivity.this.startActivity(intent);
}
public void shareOnTwitter(View v) {
EditText widget40 = (EditText)findViewById(R.id.widget40);
Uri uri = Uri.parse("https://twitter.com/intent/tweet?text=" + " @coolfacts_fb " + widget40.getText());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
public void nofb(View v) {
Intent intent = new Intent(v.getContext(), shareTw.class);
startActivityForResult(intent, 0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
updateView();
}
}
}
समस्या, कोई बात नहीं क्या, उपयोगकर्ता की वर्तमान स्थिति है, तो जैसे ही मैं फेसबुक लॉगइन के लिए बटन पर क्लिक करें के रूप में नई गतिविधि के लिए चला जाता है!
क्या कोई मेरी मदद कर सकता है?
क्या ऐसा लगता है कि 'सत्र' खोला नहीं गया है, तो आप 'onClickLogin()' विधि में नहीं जा सकते हैं? –
यह ऑनक्लिकॉगिन() विधि पर जा रहा है क्योंकि ये लाइनें काम कर रही हैं: इरादा इरादा = नया इरादा (मुख्य गतिविधि। यह, चयनफ्रेगमेंट.क्लास); MainActivity.this.startActivity (इरादा); – defiant
@oDx क्या आपने नई गतिविधि शुरू करने से पहले फेसबुक प्रमाणीकरण काम कर लिया है? –