J'apprends le développement android. Je fais une inscription et une application de connexion. mon inscription et mon login fonctionnent correctement. Mais je ne sais pas comment enregistrer le nom d'utilisateur et mot de passe dans la préférence partagée. et définissez une valeur booléenne pour vérifier dans l'écran de barre oblique pour vérifier la connexion. voici mon code.Je souhaite enregistrer un nom d'utilisateur et un mot de passe dans les préférences partagées
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
private final AppCompatActivity activity = LoginActivity.this;
private NestedScrollView nestedScrollView;
private TextInputLayout textInputLayoutEmail;
private TextInputLayout textInputLayoutPassword;
private TextInputEditText textInputEditTextEmail;
private TextInputEditText textInputEditTextPassword;
private AppCompatButton appCompatButtonLogin;
private AppCompatTextView textViewLinkRegister;
private InputValidation inputValidation;
private DatabaseHelper databaseHelper;
AnimationDrawable animationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initViews();
initListeners();
initObjects();
animationDrawable=(AnimationDrawable)nestedScrollView.getBackground();
animationDrawable.setEnterFadeDuration(1000);
animationDrawable.setExitFadeDuration(1000);
animationDrawable.start();
//saving data in shared priference
SharedPreferences sharedPreferences=getSharedPreferences("Login",MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putBoolean("isLogin",true);
editor.putString("user", String.valueOf(textInputEditTextEmail));
editor.putString("pass", String.valueOf(textInputEditTextPassword));
editor.commit();
}
/**
* This method is to initialize views
*/
private void initViews() {
nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
textInputLayoutEmail = (TextInputLayout) findViewById(R.id.textInputLayoutEmail);
textInputLayoutPassword = (TextInputLayout) findViewById(R.id.textInputLayoutPassword);
textInputEditTextEmail = (TextInputEditText) findViewById(R.id.textInputEditTextEmail);
textInputEditTextPassword = (TextInputEditText) findViewById(R.id.textInputEditTextPassword);
appCompatButtonLogin = (AppCompatButton) findViewById(R.id.appCompatButtonLogin);
textViewLinkRegister = (AppCompatTextView) findViewById(R.id.textViewLinkRegister);
}
/**
* This method is to initialize listeners
*/
private void initListeners() {
appCompatButtonLogin.setOnClickListener(this);
textViewLinkRegister.setOnClickListener(this);
}
/**
* This method is to initialize objects to be used
*/
private void initObjects() {
databaseHelper = new DatabaseHelper(activity);
inputValidation = new InputValidation(activity);
}
/**
* This implemented method is to listen the click on view
*
* @param v
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.appCompatButtonLogin:
verifyFromSQLite();
break;
case R.id.textViewLinkRegister:
// Navigate to RegisterActivity
Intent intentRegister = new Intent(getApplicationContext(), RegisterActivity.class);
startActivity(intentRegister);
break;
}
}
/**
* This method is to validate the input text fields and verify login credentials from SQLite
*/
private void verifyFromSQLite() {
if (!inputValidation.isInputEditTextFilled(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
return;
}
if (!inputValidation.isInputEditTextEmail(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
return;
}
if (!inputValidation.isInputEditTextFilled(textInputEditTextPassword, textInputLayoutPassword, getString(R.string.error_message_email))) {
return;
}
if (databaseHelper.checkUser(textInputEditTextEmail.getText().toString().trim()
, textInputEditTextPassword.getText().toString().trim())) {
Intent accountsIntent = new Intent(activity, HomePage.class);
accountsIntent.putExtra("EMAIL", textInputEditTextEmail.getText().toString().trim());
emptyInputEditText();
startActivity(accountsIntent);
finish();
} else {
// Snack Bar to show success message that record is wrong
Toast.makeText(getApplicationContext(),getString(R.string.error_valid_email_password),Toast.LENGTH_LONG).show();
}
}
/**
* This method is to empty all input edit text
*/
private void emptyInputEditText() {
textInputEditTextEmail.setText(null);
textInputEditTextPassword.setText(null);
}
}
Ceci est mon code d'écran oblique.
public class MainActivity extends AppCompatActivity {
private static int slash_screen_time_out=4000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(getApplicationContext(),LoginActivity.class);
startActivity(intent);
finish();
}
},slash_screen_time_out);
}
}
S'il vous plaît aidez-moi à résoudre ce problème. Merci d'avance.
S'il vous plaît jeter un oeil à ce [**] ** réponse (https: // stackoverflow.com/questions/9233035/best-option-to-store-username-and-password-in-android-app) – Mandy8055
Quel est votre problème exactement? –
juste un conseil, vous ne devriez pas stocker le mot de passe sur l'appareil, vous devez utiliser un authtoken ou des cookies pour l'authentification. –