Passage d'une activité à l'autre au clique d'un bouton

Résolu
YameFAZE Messages postés 204 Statut Membre -  
BunoCS Messages postés 16550 Statut Modérateur -
Bonjour,

J'ai un souci, j'ai créé deux activités avec un bouton qui permet de passer d'une à l'autre, il s'agit d'une page de login avec quelques vérifications d'usage qui mène à une page de confirmation au clique du bouton de connexion. Mais lorsque je clique sur le bouton de connexion l'appli plante. Je n'arrive pas à déterminer d'où vient le problème. Pourtant il n'y a pas d'erreur affichée dans Android Studio et mes deux activités sont bien déclarées dans le manifest. Peut-être un problème au niveau de l'ordre des instructions... ci-dessous les codes de mes deux activités.

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Index extends AppCompatActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.index_activity);
final EditText emailUtilisateur = (EditText) findViewById(R.id.email_utilisateur);
final EditText passwordUtilisateur = (EditText) findViewById(R.id.password_utilisateur);
final Button loginButton = (Button) findViewById(R.id.bouton_connexion);
loginButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
final String loginTxt = emailUtilisateur.getText().toString();
final String passTxt = passwordUtilisateur.getText().toString();
Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
Matcher m = p.matcher(loginTxt);
if (!m.matches())
{
Toast.makeText(Index.this, R.string.erreur_format_email, Toast.LENGTH_SHORT).show();
return;
}
if (loginTxt.equals("") || passTxt.equals(""))
{
Toast.makeText(Index.this, R.string.email_ou_password_vide, Toast.LENGTH_SHORT).show();
return;
}
Intent lien_Index_vers_Start = new Intent(Index.this, Start.class);
lien_Index_vers_Start.putExtra(Start.package_emailUtilisateur, emailUtilisateur.getText().toString());
lien_Index_vers_Start.putExtra(Start.package_passwordUtilisateur, passwordUtilisateur.getText().toString());
startActivity(lien_Index_vers_Start);
}
});
}
}


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class Start extends AppCompatActivity
{
public static final String package_emailUtilisateur = "email_utilisateur";
public static final String package_passwordUtilisateur = "password_utilisateur";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.start_activity);
Intent lien_Index_vers_Start = getIntent();
TextView affichage_emailUtilisateur = (TextView) findViewById(R.id.vue_email_utilisateur);
TextView affichage_passwordUtilisateur = (TextView) findViewById(R.id.vue_password_utilisateur);
if (lien_Index_vers_Start != null)
{
affichage_emailUtilisateur.setText(lien_Index_vers_Start.getStringExtra(package_emailUtilisateur));
affichage_passwordUtilisateur.setText(lien_Index_vers_Start.getStringExtra(package_passwordUtilisateur));
}
}
}
A voir également:

2 réponses

BunoCS Messages postés 16550 Statut Modérateur 3 919
 
Hello,

Tu as forcément une erreur remontée dans la console en rouge...
As-tu essayé en debug pas-à-pas? Tu as beaucoup d'instructions qui peuvent mener à un crash. Par exemple, que ce passe-t-il quand le champ emailUtilisateur est vide?
0
YameFAZE Messages postés 204 Statut Membre
 
Salut,

Non, aucune erreur remontée dans la console. Lorsque le champs emailUtilisateur est vide le toast erreur_format_email s'affiche. Lorsque le champs passwordUtilisateur est vide le toast email_ou_password_vide s'affiche. C'est lorsque les deux champs sont correctement remplis et que je clique sur le bouton connexion que l'appli crash.
0
BunoCS Messages postés 16550 Statut Modérateur 3 919 > YameFAZE Messages postés 204 Statut Membre
 
As-tu essayé en debug pas-à-pas?
0
YameFAZE Messages postés 204 Statut Membre > BunoCS Messages postés 16550 Statut Modérateur
 
Que veux-tu dire par debug pas-à-pas ? Je connais le bouton "play" pour lancer l'appli sur mon smartphone mais c'est tout...
0
YameFAZE Messages postés 204 Statut Membre > BunoCS Messages postés 16550 Statut Modérateur
 
Ah ça y est, j'ai compris le système de debug, enfin presque. J'ai mis un stop à côté de
startActivity(lien_Index_vers_Start);
puisque le problème semble venir du clique sur le bouton lorsque les champs sont valides. Et lorsque je lance le debug voilà ce que la console m'affiche
Connected to the target VM, address: 'localhost:8601', transport: 'socket'
.
0
YameFAZE Messages postés 204 Statut Membre > BunoCS Messages postés 16550 Statut Modérateur
 
Bon, ok, en fait non... je ne comprends pas du tout comment fonctionne le debug...
0
BunoCS Messages postés 16550 Statut Modérateur 3 919
 
Petite remarque en passant.

Pour alléger l'écriture, et éviter les findViewById(), tu peux utiliser ButterKnife
0
YameFAZE Messages postés 204 Statut Membre
 
Merci.
0