2011-09-13 21 views
1

Android SharedPreference.Iで少し助けが必要です。ログインしていればユーザー状態を保存する方法を探そうとしていました。 - TAB2 - TAB3Androidのユーザーログインログアウト状態を保存する

TAB1 - >

TAB1:いくつかのタブと、ログインページが含まtabhostを持ってelse.I何かがActivities.Hereが少し例である子の1から開始されましたACT1(TAB1の子アクティビティ) ACT1 --->ログインページ。

私はSharedPreferencesを使用してisLoggedIn状態を取得しますが、TAB1が新しい要素を表示できるように、ログインページを閉じるときにUIをリロードしたいという問題があります。ここで

は、今の私のコードです:

ログインページ:

SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = isLogged.edit(); 
     editor.putBoolean("isLoggedIn", true); 
     editor.commit(); 
     this.notifyAll(); 

とTAB1に、私はこの持っている:それを修正する方法

SharedPreferences isLogged = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     boolean isLoggedIn = isLogged.getBoolean("isLoggedIn", false); 

任意のアイデアを?

答えて

1

「TabActivity」の権限を再読み込みできるように、ユーザーが「LoginActivity」にログインしたときに再確認する必要があることを理解していますか? 結果は親アクティビティーに戻すことでこれを行うことができます。

public class StackOverflowActivity extends Activity { 

    public static final int LOGIN_REQUEST = 100; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button btn = (Button) findViewById(R.id.button1); 
     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(StackOverflowActivity.this, Login.class); 
       startActivityForResult(i, LOGIN_REQUEST); 
      } 
     }); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     switch (requestCode) { 
     case LOGIN_REQUEST: 
      // TODO implement UI refresh 
      Toast.makeText(getApplicationContext(), "I am coming from the login activity!", 
        Toast.LENGTH_LONG).show(); 
      break; 
     default: 
      Toast.makeText(getApplicationContext(), "Unexpected request code!", 
        Toast.LENGTH_LONG).show(); 
      break; 
     } 

    } 
} 
関連する問題