2012-10-26 32 views
0

我創建了一個需要從Facebook/Twitter/Google登錄才能開始使用的應用程序。在一個佈局中,我爲Facebook,Twitter和谷歌分別創建了三個開關,其中有開啓和關閉選項。如果用戶從相應帳戶登錄,我想將特定帳戶的開關設置爲「開」。例如,如果用戶從Facebook登錄,只有Facebook旁邊的開關應該打開。我怎樣才能做到這一點?如何以不同的佈局顯示登錄信息?

任何建議,將不勝感激,如果有人知道,那麼請向我介紹任何教程與此有關。 以下是我的登錄頁面的代碼。我已經展示了對於Facebook的一部分登錄: 感謝名單:)

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(); 
        } 
       } 
      } 

回答

0

嘗試這種方式....

-首先創建一個Singleton Class 3布爾variables for 3 logins info, and there消氣Setter`。在這裏需要單身人士,以便只有該類別的一個對象形成,無論該類別在整個應用程序中被調用。所以現在你有一個單一的信息點。

-總是檢查Singleton類的變量中的另一個Activity或在需要時由你,要知道一開始就知道用戶是否登錄到一個或兩個或全部社交網站。

////////////////////////////////編輯部分/////////// //////////////////

創建一個簡單的方法一個Singleton低於,想有更多一些:

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. 

    } 

} 

現在要調用另一類這個對象做如下...

public class Main{ 

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


} 
+0

@Aashish看到編輯後的答案..因此在閱讀之前刷新它會更好。 –

相關問題