앱을 가지고 있는데 사용자가 로그인 할 때 사용자 이름과 비밀번호를 저장하려고합니다. 사용자가 앱을 시작하면 사용자 이름과 비밀번호를 읽고 로그인해야합니다. 문제는 항상 암호를 두 번 읽는다는 것입니다. 한 번은 암호 (올바른 경우)이고 한 번은 사용자 이름입니다. 따라서 사용자 이름과 암호로 암호를 사용하여 로그인을 시도합니다.SharedPreferences가 동일한 값을 읽습니다.
읽기 :
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]
로 초기화합니다. 로깅 해보기 –