У меня есть приложение, и я пытаюсь сохранить имя пользователя и пароль при входе пользователя в систему. Когда пользователь запускает приложение, он должен прочитать имя пользователя, пароль и логин. Проблема в том, что он всегда дважды читает пароль - один раз для пароля (который является правильным) и один раз для имени пользователя. Поэтому он пытается войти с использованием пароля в качестве имени пользователя и пароля.SharedPreferences читайте то же значение
Reading:
sharedPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
String userName = sharedPref.getString(getString(
R.string.de_letorat_TicTacToe_PREF_NAME), null);
if(userName != null) {
String password = sharedPref.getString(getString(
R.string.de_letorat_TicTacToe_PREF_PASSWORD), null);
Log.d("TicTacToe", "Read. Username: " + userName + "; Password: " + password);
pw.println("$login" + userName + "/" + password);
pw.flush();
Log.d("TicTacToe", "Sent. Username: " + userName + "; Password: " + password);
}
Экономия:
Editor edit = sharedPref.edit();
EditText nameField = (EditText) findViewById(R.id.login_fragment_username);
EditText passwordField = (EditText) findViewById(R.id.login_fragment_password);
edit.putString(getString(R.string.de_letorat_TicTacToe_PREF_NAME),
nameField.getText().toString());
edit.putString(getString(R.string.de_letorat_TicTacToe_PREF_PASSWORD),
passwordField.getText().toString());
edit.commit();
Log.d("TicTacToe", "Wrote. Username: " + nameField.getText().toString() +
"; Password: " + passwordField.getText().toString());
Результатом является:
Wrote. Username: [username]; Password: [password]
Read. Username: [password]; Password: [password]
Sent. Username: [password]; Password: [password]
Вы уверены, что '' de_letorat_TicTacToe_PREF_NAME' и de_letorat_TicTacToe_PREF_PASSWORD' имеют разные значения. Попробуйте выполнить регистрацию этих –