Passage d'une activité à l'autre au clique d'un bouton
Résolu
YameFAZE
Messages postés
179
Date d'inscription
Statut
Membre
Dernière intervention
-
BunoCS Messages postés 5036 Date d'inscription Statut Modérateur Dernière intervention -
BunoCS Messages postés 5036 Date d'inscription Statut Modérateur Dernière intervention -
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.
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));
}
}
}
2 réponses
-
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?
-
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. -
-
-
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'afficheConnected to the target VM, address: 'localhost:8601', transport: 'socket'
. -
-
-
Petite remarque en passant.
Pour alléger l'écriture, et éviter les findViewById(), tu peux utiliser ButterKnife