Android Studio - Login
diijii
Messages postés
24
Statut
Membre
-
diijii Messages postés 24 Statut Membre -
diijii Messages postés 24 Statut Membre -
Bonjour,
Je suis entrain de créer un login pour mon application Android. Rien de transcendant. Juste un login simple afin d'avoir un contrôle sur l'utilisateur entrant.
Pour vous donner une idée. J'ai une page d'accueil. Celle-ci contient deux boutons : sign in et sign up. Avec sign up, on se dirige sur une page qui va nous permettre de rajouter à notre database une utilisateur. Jusqu'ici pas de problème.
Dans le sign in, le but est de vérifier si le mot de passe est bien celui de l'utilisateur. Je me retrouve confronter à un problème. Vous trouvez ci-dessous mon code de la méthode checkpassword() appelée lorsque l'on appuie sur le bouton "ok" dans sign in. En l'exécutant, il m'éteint le virtual device sans autre forme de pitié.
Ici, vous trouvez la méthode affectée au bouton ok :
En espérant que quelqu'un arrivera à m'aider. Je vous remercie d'avance du temps que vous consacrerez à ma requête.
Diji
Je suis entrain de créer un login pour mon application Android. Rien de transcendant. Juste un login simple afin d'avoir un contrôle sur l'utilisateur entrant.
Pour vous donner une idée. J'ai une page d'accueil. Celle-ci contient deux boutons : sign in et sign up. Avec sign up, on se dirige sur une page qui va nous permettre de rajouter à notre database une utilisateur. Jusqu'ici pas de problème.
Dans le sign in, le but est de vérifier si le mot de passe est bien celui de l'utilisateur. Je me retrouve confronter à un problème. Vous trouvez ci-dessous mon code de la méthode checkpassword() appelée lorsque l'on appuie sur le bouton "ok" dans sign in. En l'exécutant, il m'éteint le virtual device sans autre forme de pitié.
public boolean checkpassword()
{
DbHelper mDbHelper = new DbHelper(this);
SQLiteDatabase db = mDbHelper.getReadableDatabase();
String[] projection = {
Contract.LoginEntry.KEY_PASSWORD
};
String sortOrder = Contract.LoginEntry.TABLE_LOGIN + " Desc";
String username = findViewById(R.id.et_Username).toString();
String password = findViewById(R.id.et_Username).toString();
Cursor c = db.query(
Contract.LoginEntry.TABLE_LOGIN, projection, "Username = '"+username+"'", null, null, null, sortOrder);
//Problem avec le cursor. A voir
if(c.getString(0).equals(password))
{
return true ;
}
return false ;
}
Ici, vous trouvez la méthode affectée au bouton ok :
public void SignInOk(View view)
{
if(checkpassword()) {
Intent intent = new Intent(SignInFrame.this, Accueil.class);
startActivity(intent);
}
else
{
Toast.makeText(getApplicationContext(), "Wrong Password",
Toast.LENGTH_SHORT).show();
}
}
En espérant que quelqu'un arrivera à m'aider. Je vous remercie d'avance du temps que vous consacrerez à ma requête.
Diji
A voir également:
- Android Studio - Login
- Android recovery - Guide
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Presse papier android - Guide
- Begone android - Accueil - Protection
- À quoi sert google drive sur android - Guide
2 réponses
Bonjour,
Je ne connais pas Android, donc Cursor non plus, mais en Java quand on a un ResultSet, il faut d'abord lui faire un next pour lire la première ligne.
Ici je pense qu'il faut faire la même chose, et qu'il te manque cette étape.
Voir : android.database.CursorLa confiance n'exclut pas le contrôle
Je ne connais pas Android, donc Cursor non plus, mais en Java quand on a un ResultSet, il faut d'abord lui faire un next pour lire la première ligne.
Ici je pense qu'il faut faire la même chose, et qu'il te manque cette étape.
Cursor c = db.query(Contract.LoginEntry.TABLE_LOGIN, projection, "Username = '"+username+"'", null, null, null, sortOrder);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
String str = c.getString(0);
...
}
Voir : android.database.CursorLa confiance n'exclut pas le contrôle
Je te remercie de ta réponse. Toutefois, après avoir essayé comme tu me la conseillais aucun changement probant à noter.
Je ne comprends vraiment pas où mon code peut être faux. Il doit s'agir d'un petit détail.
N'hésitez surtout pas à proposer ou à donner votre avis. Merci d'avance.
Diji
Par exemple :
public boolean checkpassword() { try { // Tout le reste } catch (Exception e) { // affichage du message d'erreur return false; // s'il y a une erreur le mot de passe est faux } }Je reste ouvert à d'autres réponses.
Encore merci KX.
Salutations.