2016-08-09 221 views
0

ich einen Parameter auf meine neue Tätigkeit in Android passieren:Android Gabeparameter Bundle mit zurückkehren null

Intent intent = new Intent(this,InOccasion.class); 
intent.putExtra("key",key); //I've checked an seen that in this activity "key" isn't null 
this.startActivity(intent); 

Wie gesagt, key in diesem Block ist nicht null.

Allerdings, wenn ich es abrufen:

Bundle b = getIntent().getExtras(); 
if (b!=null) 
    key = b.getString("b"); 

keynull ist und eine Nullpointer verursacht. Aber ich bin sicher, key ist nicht null. Und ja, ich rufe von der richtigen Aktivität an.

Ich habe this gesehen, aber es ist unbeantwortet und meins ist IMMER Null.

+0

Es ist eine gute Gewohnheit 'public static final String' Werte zu verwenden, Ihre Schlüssel konsistent über die App zu halten. –

Antwort

2

Sie setzen den Schlüsselnamen "key" und erhalten "b". Holen Sie sich das rechte Taste d "key"

+0

Was für ein dummer Fehler –

1

Sie passieren Daten an die intent nicht die Bundle. Wenn Sie schreiben Daten wie:

Intent intent = new Intent(this, InOccasion.class); 
intent.putExtra("key", key); // key must be a String object 

Holen Sie es wie folgt:

Intent intent = getIntent(); 
key = intent.getStringExtra("key"); 
+0

Bundles sind innerhalb von Intents. Sie können den Android-Quellcode überprüfen, um zu sehen, dass 'getStringExtra' nur in das Bundle geht. –

+0

Okay, danke.! ... lass mich das mal sehen. – Shaishav

+0

Siehe hier. http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/content/Intent.java#5059 –