Общие предпочтения в 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();

Надеюсь это поможет!

Другие вопросы по тегам