Problème de transmission de données entre deux Activity [Résolu/Fermé]

Signaler
Messages postés
182
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
7 novembre 2020
-
Messages postés
182
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
7 novembre 2020
-
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

Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 126
'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());
Messages postés
182
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
7 novembre 2020

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).
Messages postés
14858
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 novembre 2020
2 777
Il faut les déclarer en
static
.

public static final String EXTRA_LOGIN = "user_login";
Messages postés
182
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
7 novembre 2020

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...
Messages postés
14858
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 novembre 2020
2 777
Il sont bien là où ils sont, c'est-à-dire dans ton Activity Activity_Login_Verif
Messages postés
182
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
7 novembre 2020

Merci bien, je n'ai plus d'erreur dans Android Studio, sauf que lorsque je teste l'appli elle plante au clique du bouton...
Messages postés
182
Date d'inscription
mardi 24 avril 2012
Statut
Membre
Dernière intervention
7 novembre 2020

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...