2016-05-21 61 views
0

我想使用SharedPreferences跳過登錄Activity:如果登錄已完成,SharedPreferences將存儲用戶名,並且登錄將繼續第二次,而無需通過登錄活動。SharedPreferences在第一次登錄後避免登錄屏幕

CallbackManager mcallbackManager; 
private SharedPreferences mPreferences; 
private String your_user_name; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mPreferences = getSharedPreferences("User", MODE_PRIVATE); 
    SharedPreferences.Editor editor = mPreferences.edit(); 
    editor.putString("username", your_user_name); 
    editor.commit(); 

    if (mPreferences.contains("username")) { 
     Intent intent = new Intent(MainActivity.this, getMyLocation.class); 
     startActivity(intent); 
    }else { 

     FacebookSdk.sdkInitialize(this.getApplicationContext()); 
     setContentView(R.layout.activity_main); 

     mcallbackManager = CallbackManager.Factory.create(); 


     LoginManager.getInstance().registerCallback(mcallbackManager, 
       new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         Intent intent = new Intent(MainActivity.this, getMyLocation.class); 
         startActivity(intent); 
        } 

        @Override 
        public void onCancel() { 

        } 

        @Override 
        public void onError(FacebookException exception) { 
         // App code 
        } 
       }); 

     } 
} 

我已經使用上面的代碼,但它似乎並沒有像預期的那樣工作。
運行時應用程序沒有崩潰,logcat中沒有顯示任何內容。

我不是在哪裏我犯了一個錯誤。

+0

這個''String'包含your_user_name'哪些價值? –

+1

您尚未正確使用共享首選項。當用戶通過Facebook登錄時,您應該提交一個用戶名。 onCreate你只需要檢查它是否包含默認值,然後顯示登錄屏幕,否則轉到下一個活動。 –

回答

1

不比較字符串的用戶名只設置登錄成功結果一個布爾值

使該值設置爲true。

sharePrefObje.putBoolean("isLoginKey",true); 

上閃屏支票像這樣

if (getSharedPreferences("PREFERENCENAME",0).getBoolean("isLoginKey",false)){ 
       Intent i = new Intent(SplashActivity.this, MainActivity.class); 
       startActivity(i); 
       finish(); 
      }else{ 
       Intent i = new Intent(SplashActivity.this, LoginActivity.class); 
       startActivity(i); 
       finish(); 
      } 
+0

對不起,我無法理解你在說什麼,你有可能編輯我提供的代碼。 – Eggsy

+0

public void onSuccess(LoginResult loginResult){ Intent intent = new Intent(MainActivity.this,getMyLocation.class); startActivity(intent); } –

+0

將isLogin變量設置爲true,以便您可以執行此操作。, –