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 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
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 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
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 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
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