2016-11-06 11 views
0

私は異なるタイプのユーザーに基づいて読み込む3つのアクティビティを持っています。ログイン時にsharedpreferencesにログインしたユーザー情報を保存しました。私はログアウトボタンをクリックした後にユーザー情報を削除します。ログアウトユーザーが自動的にアプリにサインインできるようになるまで、sharedpreferencesにレコードが存在するかどうか確認する必要があります。どうやってするの。ここに私のコードは次のとおりです。あなたのランチャーの活動にログインユーザーがアンドロイドのsharedpreferencesに情報がある場合に自動的にサインインする方法

try { 
      object = new JSONObject(root.getTextContent().toString()); 
      StatusValue = object.getString("status"); 
      UserInfoValue = object.getString("UserInfo"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     SharedPreferences.Editor editor = getSharedPreferences("UserInfoValues", MODE_PRIVATE).edit(); 
     editor.putString("UserInfos", UserInfoValue); 
     editor.commit(); 
     // Log.d("Value:" ,Value); 
     txtView.setText(StatusValue); 
     if(StatusValue.equalsIgnoreCase("success")) 
     { 
      String userType = null; 
      //SharedPreferences prefs = getSharedPreferences("UserInfoValues", MODE_PRIVATE); 
      // String restoredText = prefs.getString("UserInfos", null); 
      try { 
       JSONObject infoObject = new JSONObject(UserInfoValue); 
       userType = infoObject.getString("UserType"); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 


      if(userType.equalsIgnoreCase("NormalUser")) 
      { 
       Intent intent=new Intent(LoginActivity.this,NewBookingActivity.class); 
       startActivity(intent); 
       Toast.makeText(getApplicationContext(), "Successfully Loged In As Normal User", Toast.LENGTH_LONG).show(); 
       finish(); 
      } 
      if(userType.equalsIgnoreCase("HelpDesk")) 
      { 
       Intent intent=new Intent(LoginActivity.this,DriverActivity.class); 
       startActivity(intent); 
       Toast.makeText(getApplicationContext(), "Successfully Loged In As HelpDesk User", Toast.LENGTH_LONG).show(); 
       finish(); 
      } 
      if(userType.equalsIgnoreCase("Car")) 
      { 
       Intent intent=new Intent(LoginActivity.this,DriverActivity.class); 
       startActivity(intent); 
       Toast.makeText(getApplicationContext(), "Successfully Loged In As Car User", Toast.LENGTH_LONG).show(); 
       finish(); 
      } 

答えて

0

boolean isRegistered = preferences.getBoolean("isRegistered", false); 

if(isRegistered){ 
//continue to your home screen 
}else { 
//show login page 
} 

とユーザーがログインした後、このようなあなたのsharedpreferenceを更新し、

editor.putBoolean("isRegistered", true).commit(); 

と、ユーザーがログアウトし、更新このようなあなたの共有の参照は、

editor.putBoolean("isRegistered", false).commit(); 
0

使用する共有好みユーザログインが検証され、このような次の活動のために行くとき:私は管理者とメンバーのログインを使用してい

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext()); 
    username = sharedPreferences.getString("username",""); 
    password = sharedPreferences.getString("password",""); 
    type = sharedPreferences.getString("type",""); 
    if(!(username.equals("") && password.equals(""))){ 
     if(type.equals("admin")){ 
      Intent i = new Intent(getActivity(), AfterAdLog.class); 
      startActivity(i); 
     }else if(type.equals("member")){ 
      Intent i1 = new Intent(getActivity(), AfterLogMem.class); 
      startActivity(i1); 
     } 
    } 
+0

ので、私は」:あなたのスプラッシュがこれを置く使用場所、その後

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); SharedPreferences.Editor editor = prefs.edit(); editor.putString("username", username); editor.putString("password", password); editor.putString("type","admin"); editor.apply(); 

あなたはそのフィールドを削除することができます "タイプ"を使用しました。 –

関連する問題