Problème de transmission de données entre deux Activity

Résolu/Fermé
YameFAZE
Messages postés
201
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
14 mars 2021
- 13 mars 2017 à 23:24
YameFAZE
Messages postés
201
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
14 mars 2021
- 15 mars 2017 à 14:29
Bonjour amis développeurs,

J'ai un soucis de transmission de données entre deux Activity. Des chaînes de caractères entrées par l'utilisateur dans des champs et envoyées à l'aide d'un bouton. Ci-dessous les codes sources de mes deux Activity.

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;

public class Index extends AppCompatActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

setContentView(R.layout.test);

final EditText login = (EditText) findViewById(R.id.user_email);
final EditText pass = (EditText) findViewById(R.id.user_password);
final Button loginButton = (Button) findViewById(R.id.connect);
loginButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(Index.this, Activity_Login_Verif.class);
intent.putExtra(EXTRA_LOGIN, login.getText().toString());
intent.putExtra(EXTRA_PASSWORD, pass.getText().toString());
startActivity(intent);
}
});
}
}


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class Activity_Login_Verif extends AppCompatActivity
{
final String EXTRA_LOGIN = "user_login";
final String EXTRA_PASSWORD = "user_password";

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

setContentView(R.layout.login_verif);

Intent intent = getIntent();
TextView loginDisplay = (TextView) findViewById(R.id.email_display);
TextView passwordDisplay = (TextView) findViewById(R.id.password_display);

if (intent != null)
{
loginDisplay.setText(intent.getStringExtra(EXTRA_LOGIN));
passwordDisplay.setText(intent.getStringExtra(EXTRA_PASSWORD));
}
}
}


Visiblement il y a un soucis avec EXTRA_LOGIN et EXTRA_PASSWORD. Ci-dessous le message d'erreur d'Android Studio.

Error:(45, 33) error: cannot find symbol variable EXTRA_LOGIN
Error:(48, 33) error: cannot find symbol variable EXTRA_PASSWORD
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 15.348 secs
Information:3 errors
Information:0 warnings
Information:See complete output in console


Si quelqu'un pouvait me filer un petit coup de main.

6 réponses

ElementW
Messages postés
4764
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 305
14 mars 2017 à 00:16
'lut,
EXTRA_LOGIN
et
EXTRA_PASSWORD
étant des constantes de
Activity_Login_Verif
, quand tu écrits du code autre part que dans cette classe, il faut référencer ces constantes avec le nom de classe devant:
intent.putExtra(Activity_Login_Verif.EXTRA_LOGIN, login.getText().toString());
intent.putExtra(Activity_Login_Verif.EXTRA_PASSWORD, pass.getText().toString());
0
YameFAZE
Messages postés
201
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
14 mars 2021

Modifié par YameFAZE le 14/03/2017 à 14:26
Merci pour ta réponse. J'ai fait la modif mais ça ne fonctionne toujours pas. Les deux constantes sont toujours en rouge... Android Studio indique qu'il ne s'agit pas d'un Static Field et que donc il ne peut pas le référencer dans un Static Context (si j'ai bien compris).
0
BunoCS
Messages postés
15256
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
17 mai 2022
3 860
14 mars 2017 à 16:18
Il faut les déclarer en
static
.

public static final String EXTRA_LOGIN = "user_login";
0
YameFAZE
Messages postés
201
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
14 mars 2021

14 mars 2017 à 22:49
Ok, merci, mais où faut-il les déclarer stp ? J'ai essayé un peu partout mais je n'arrive pas à résoudre le problème...
0
BunoCS
Messages postés
15256
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
17 mai 2022
3 860
15 mars 2017 à 09:07
Il sont bien là où ils sont, c'est-à-dire dans ton Activity Activity_Login_Verif
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
YameFAZE
Messages postés
201
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
14 mars 2021

15 mars 2017 à 14:04
Merci bien, je n'ai plus d'erreur dans Android Studio, sauf que lorsque je teste l'appli elle plante au clique du bouton...
0
YameFAZE
Messages postés
201
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
14 mars 2021

15 mars 2017 à 14:29
Ah... quel couillon. J'avais seulement oublié de déclarer ma seconde activité dans le manifest. Problème résolut. Tout fonctionne. Merci beaucoup. Me reste plus qu'à passer aux sessions avec base de données maintenant...
0