2012-04-25 4 views
0

Je souhaite passer une chaîne d'une activité à une autre, bien que j'ai pris référence à de nombreuses réponses acceptées provenant d'autres threads, je suis confronté à un problème que je ne suis pas en mesure de déboguer. Lorsque je commente extras.putString comme indiqué dans le code ci-dessous, le message Toast affiche l'adresse correcte qui signifie que la valeur est définie correctement et le code fonctionne correctement mais lorsque j'utilise extras.putString(), j'obtiens NullPointerException et l'application se ferme en raison de l'exception. Il y a beaucoup de \ n caractères dans ma chaîne d'adresse. Enfait même si j'utilise extras.putString ("userAddress", "test") Je reçois NullPointerExceptionException lors du passage d'extras par intention

Voici mon activité principale à partir de laquelle je veux appeler FBShare Activité:

Intent mIntent = new Intent(this, FBShare.class); 
Bundle extras = mIntent.getExtras(); 
String currentAddress = getCurrentAddress(ourLocation); 
Toast.makeText(getBaseContext(), getCurrentAddress(ourLocation), Toast.LENGTH_SHORT).show(); 
extras.putString("userAddress", currentAddress); 
startActivity(mIntent); 

Et dans FBShare Activité I je essaie de chercher des valeurs comme suit

strAddress = getIntent().getExtras().getString("userAddress"); 

Here is un fil qui est en train de faire la même chose.

+3

regard sur @ réponse de Akki, vous manquez le 'mIntent.putExtras (extras); ' – thepoosh

Répondre

3

essayer mon code

Intent mIntent = new Intent(this, FBShare.class); 
Bundle extras = new Bundle(); 
String currentAddress = getCurrentAddress(ourLocation); 
Toast.makeText(getBaseContext(), getCurrentAddress(ourLocation), Toast.LENGTH_SHORT).show(); 
extras.putString("userAddress", currentAddress); 
mIntent.putExtras(extras); 
startActivity(mIntent); 

espérons que cela fonctionnera.

3

Essayez directement mettre supplémentaire sur l'intention:

mIntent.putExtra("Key", "Value")

De plus, vous récupérez les en utilisant

Intene t = getIntent(); 
String k="key"; 
if (t.hasExtra(k)) { 
    s = t.getStringExtra(k); 
    ... 
} 

Le sont get/mettre pour de nombreux types var

1
Intent mIntent = new Intent(this, FBShare.class); 
String currentAddress = getCurrentAddress(ourLocation); 
Toast.makeText(getBaseContext(), getCurrentAddress(ourLocation), Toast.LENGTH_SHORT).show(); 
mIntent.putString("userAddress", currentAddress); 
startActivity(mIntent); 

Bundle est pas besoin dans votre cas car il semble que vous ne PASING une chaîne que vous pouvez utiliser le code ci-dessus ..

Questions connexes