2012-10-26 4 views
0

J'ai créé une application qui nécessite une connexion depuis Facebook/Twitter/Google pour commencer. Dans une mise en page j'ai créé trois commutateurs chacun pour Facebook, Twitter et Google qui a des options ON et OFF. Je veux que le changement du compte particulier soit activé si l'utilisateur est connecté depuis ce compte. Exemple si l'utilisateur est connecté à partir de Facebook, seul le commutateur à côté de Facebook doit être activé. Comment puis je faire ça?Comment afficher les informations de connexion dans une disposition différente?

Toutes les suggestions seraient appréciées, et aussi si quelqu'un le sait alors s'il vous plaît me référer à un tutoriel lié à cela. Voici mon code pour la page de connexion. Je l'ai montré la connexion pour une partie Facebook: Thanx :)

private OnClickListener loginButtonListener = new OnClickListener() { 
     @SuppressWarnings("deprecation") 
     public void onClick(View v) { 
      String[] permissions = { "offline_access", "publish_stream", "user_photos", "publish_checkins","photo_upload" }; 


      if(v.getId() == R.id.button1) 
      { 
       facebookSwitch = true; 
       twitterSwitch = false; 
       googleSwitch = false; 
       if(!mFacebook.isSessionValid()) { 
        Toast.makeText(Login.this, "Authorizing", Toast.LENGTH_SHORT).show(); 
        mFacebook.authorize(Login.this, permissions, new LoginDialogListener()); 
       } 
       else { 
        Toast.makeText(Login.this, "Has valid session", Toast.LENGTH_SHORT).show(); 
        try { 
         JSONObject json = Util.parseJson(mFacebook.request("me")); 
         //Log.d("Login", "11111111111111111"); 
         String facebookID = json.getString("id"); 
         //Log.d("Login", "22222222222222"); 

         String firstName = json.getString("first_name"); 
         //Log.d("Login", "3333333333333333333"); 

         String lastName = json.getString("last_name"); 
         //Log.d("Login", "4444444444444444444444"); 

         Toast.makeText(Login.this, "You already have a valid session, " + firstName + " " + lastName + ". No need to re-authorize.", Toast.LENGTH_LONG).show(); 
         Intent intent = new Intent(Login.this,MainActivity.class); 
         startActivity(intent); 
        } 
        catch(Exception error) { 
         Toast.makeText(Login.this, error.toString(), Toast.LENGTH_SHORT).show(); 
        } 
        catch(FacebookError error) { 
         Toast.makeText(Login.this, error.toString(), Toast.LENGTH_SHORT).show(); 
        } 
       } 
      } 

Répondre

0

Essayez cette façon ....

- d'abord créer un Singleton Class avec 3 booléen variables for 3 logins info, and there Getter-Setter`. Singleton est nécessaire ici de sorte que seul un objet de cette classe est formé, peu importe d'où cette classe est appelée dans l'ensemble de l'application. Alors maintenant vous avez un seul point d'information.

- Toujours vérifier Singleton les variables de classe au début d'un autre Activity ou au besoin par vous, à savoir que si l'utilisateur est connecté à un ou deux ou tous les sites de réseautage social.

//////////////////////////////////////////////////////////////////////////// //////////////////

une façon simple de créer un Singleton est ci-dessous, pensé il y a peu plus:

public class Test{ 

    public static Test uniqueInstance = new Test(); 

    private Test(){} 

    public static Test getInstance(){ 

     return uniqueInstance;  

     // No matter what but always u will get the same instance. 

    } 

} 

maintenant Pour appeler cet objet dans une autre classe, procédez comme ci-dessous ...

public class Main{ 

Test t = Test.getInstance(); // Now use t to call the fields and methods of class T. 


} 
+0

@Aashish voir la réponse éditée .. il serait donc préférable de le rafraîchir avant de lire. –

Questions connexes