2017-05-18 4 views
-2

Je sais à ce sujet et il fonctionne très bienComment puis-je transférer une chaîne finale d'une activité à une autre dans Android?

Intent i1 = new Intent(Login.this, Welcome.class); 
    i1.putExtra("username","the name"); 
    startActivity(i1); 

et dans la prochaine mise en page:

String username = getIntent().getStringExtra("username"); 

mais je dois tranférer une chaîne finale, j'ai essayé cela, mais cela ne fonctionne pas:

public static final String ADMIN_USERNAME= "user"; 

    Intent intent = new Intent(Login.this,SignUp.class); 
    intent.putExtra("admin_username",ADMIN_USERNAME); 
    startActivity(intent); 

et dans la prochaine mise en page:

public final String ADMIN_USERNAME= getIntent().getStringExtra("admin_username"); 

im obtenir cette erreur:

Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference 
+0

Pouvez-vous donner plus d'informations? Par exemple quelle erreur vous prenez? Peut-être une classe complète pour nous permettre de vérifier la portée de votre espace de noms? –

+0

Pour les constantes de chaîne comme celles que vous avez, faites-la simplement et accédez-y directement dans l'autre activité. –

+0

cela fonctionne comme je sais – jagapathi

Répondre

1

Lorsque vous déclarez une chaîne constante statique comme ceci:

public static final String ADMIN_USERNAME= "user"; 

vous n'avez pas besoin d'utiliser extras l'intention d'accéder à la valeur dans une autre activité , accédez directement à la constante de chaîne ADMIN_USERNAME directement:

if (someString.equals(MyActivity.ADMIN_USERNAME)) { 
    //Do something.... 
} 
0

Votre intention est null. Il est un appel au début du cycle de vie

String username = getIntent().getStringExtra("admin_username");

Assurez-vous que vous appelez cette ligne dans onCreate si vous appelez à l'intérieur onAttach

Assurez-vous également que votre clé est correcte. S'il vous plaît notez que je le fixe aussi comme « ADMIN_USERNAME »

Bonne chance

Emre