Общие предпочтения в Android
Я новичок в разработке Android.
У меня есть действие, в котором я беру имя пользователя и пароль. И я передаю эти значения веб-службе, которая возвращает ключ в качестве ответа. У меня есть одна кнопка переключения в моей активности. теперь, если пользователь проверяет кнопку переключения, это означает, что он хочет продолжать вход в систему, и пользователь должен быть перенаправлен к следующему действию при следующем входе в систему.
Если кнопка переключения отмечена, я сохраняю имя пользователя, пароль и ввод в общих настройках. но я не понимаю, как получить эти подробности в следующий раз (то есть, когда пользователь при следующем входе в систему)
6 ответов
На основе этого флажка добавьте логическое значение sharedPreferences, когда пользователь ставит / снимает флажок при входе в систему. Затем при вызове действия onCreate of Login необходимо проверить это и вызвать следующее действие, если логическое значение равно true.
userDetails = this.getSharedPreferences("userdetails", MODE_PRIVATE);
Editor edit = userDetails.edit();
edit.clear();
edit.putString("username", txtUname.getText().toString().trim());
edit.putString("password", txtPass.getText().toString().trim());
edit.commit();
Toast.makeText(this, "Login details are saved..", 3000).show();
таким образом, вы можете получить предпочтение
String Uname = userDetails.getString("username", "");
String pass = userDetails.getString("password", "");
и проверьте логин таким образом
if(Uname=="" && pass =="")
//Go to login
else
//Go to Next Activity
попробуй вот так
удачи
Попробуйте это для значения магазина в sharePreferences..
SharedPreferences prefs = getSharedPreferences("Share", Context.MODE_PRIVATE );
Editor editor = prefs.edit();
editor.putInt("Value", 1 );
editor.commit();
для получения значения
prefs.getInt("Value",0);
/////////////////////////////////////////
String Uname = userDetails.getString("username", "");
String pass = userDetails.getString("password", "");
if(Uname=="" && pass =="")
//Go to login
else
//Go to Next Activity
Затем он может зашифровать пароль и сохранить его в общих настройках всякий раз, когда ему нужен пароль, он может получить этот зашифрованный пароль из общих настроек и расшифровать его.
Избегайте хранения пароля пользователя. Для каждого пользователя рассмотрите возможность хранения:
the user id
a random seed unique to this user
a hash of the seeded password.
Пользователь должен будет повторно ввести свой пароль, затем вы можете добавить сохраненное начальное число к введенному паролю и применить алгоритм хеширования X раз к введенному паролю. Затем сравните хэш с сохраненным хешем.
Попробуйте это https://prashantsolanki3.github.io/Secure-Pref-Manager/ для безопасного и простого сохранения и получения общих настроек.
Ключи и значения автоматически шифруются.
Сохранить:
SecurePrefManager.with(this)
.set("user_name")
.value("LoremIpsum")
.go();
Получить:
String userName = SecurePrefManager.with(this)
.get("user_name")
.defaultValue("unknown")
.go();
Надеюсь это поможет!