0

ユーザーがパスワードを入力するログインアクティビティ(コード:MainActivity)を作成しました(この場合は "test")。彼らはSuccessActivityに接続していました。それまではすべてが動作します。入力したユーザーを正しいパスワードでパスワードを入力してください(ログインしたまま)

これで、ユーザーが正しいパスワードを入力したことを保存します。私は彼が、戻ってか、再度アプリを起動する場合、ユーザーは、自動的にSuccessActivityを開くことをしたい、この後

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final SharedPreferences sharedPreferences = getPreferences(this.MODE_PRIVATE); 
    final EditText editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
    final Button buttonLogin = (Button) findViewById(R.id.buttonLogin); 

    buttonLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(editTextPassword.getText().toString().equals("test")) { 
       Log.d("LOGIN", "Passwort right!"); 
       SharedPreferences.Editor editor = sharedPreferences.edit(); 
       editor.putString(PREF_NAME, "logged"); 
       editor.commit(); 
       startActivity(new Intent(MainActivity.this, SuccessActivity.class)); 
      } 
      else { 
       Toast.makeText(MainActivity.this, 
         "Passwort wrong!", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 

:私はこれを行います。私はこれを行う:

String Login = sharedPreferences.getString(PREF_NAME, ""); 
    if(Login.equals("test")) { 
     Intent intent = new Intent(this, SuccessActivity.class); 
     startActivity(intent); 
    } 
} 

しかし、私はあなたがすでにそれが動作しない、それを考えることができると思います。ユーザーが入力したパスワードが正しい場合は、SucessActivityが開きますが、ユーザーがアプリケーションを再び開くと、パスワードを再度入力する必要があります。

私はSharedPreferencesで働いています。

答えて

1

これは簡単な修正です。 SharedPreferencesに何を入れているのか見てみましょう。

これは、優先度「PREF_NAME」に「ログ」された文字列を入れます。

ここで、あなたがSharedPreferencesから読んでいるものを見てみましょう。

String Login = sharedPreferences.getString(PREF_NAME, ""); 
if(Login.equals("test")) { 

} 

あなたが見ることができるように、あなたが好みPREF_NAMEを見て、それが文字列「テスト」に等しいことを確認しています。

あなたの問題は、「テスト」が「ログ」に等しくないことです。

+0

ありがとうございます!今私はどのようにログアウトするためにanthorの活動での設定を呼び出すを見つける必要があります... –

0

SharedPreferenceに間違った値を保存します。 onClick()メソッドでコードを以下のように変更する必要があります。

SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putString(PREF_NAME, "test"); 
editor.commit(); 
startActivity(new Intent(MainActivity.this, SuccessActivity.class)); 
関連する問題