Bundle est nulle après la mise en Intention
Je sais qu'il y a des questions comme:
android-intent-bundle-toujours-null et intention-bundle-retourne null tous les temps mais il n'y a pas de bonne réponse.
Dans mon Activity 1
:
public void goToMapView(Info info) {
Intent intent = new Intent(getApplicationContext(), MapViewActivity.class);
//intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.putExtra("asdf", true);
info.write(intent);
startActivity(intent);
}
En Info:
public void write(Intent intent) {
Bundle b = new Bundle();
b.putInt(AppConstants.ID_KEY, id);
... //many other attributes
intent.putExtra(AppConstants.BUNDLE_NAME, b);
}
public static Info read(Bundle bundle) {
Info info = new Info();
info.setId(bundle.getInt(AppConstants.ID_KEY));
... //many other attributes
return info;
}
Dans MapViewActivity (Activity 2
):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_view);
Bundle extras = getIntent().getBundleExtra(AppConstants.BUNDLE_NAME);
info = Info.read(extras);
...
}
Problème est que extras
bundle est toujours null. J'ai débogué et l'Intention (intent = getIntent()
) a tous les champs pour valeur null à l'exception de l'un indiquant à quelle classe c'est (MapViewActivity
).
J'ai aussi essayé de mettre le paquet via intent.putExtras(b)
avec le même effet.
Le intent.putExtra("asdf", true)
est pour le débogage des raisons - je ne peux pas obtenir ces données trop (parce que getIntent()
a presque tous les champs de la valeur null).
MODIFIER
Les réponses ci-dessous sont correctes et de travail. C'était de ma faute. Je n'ai pas transmis correctement mon baluchon aux nouvelles intentions.
OriginalL'auteur Xeon | 2012-04-11
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce que "Info", mais je suggère de faire le plus de base de transmission de données à partir d'une activité à une autre en premier avant de faire intervenir d'autres objets de données.
Activity1
Activity2
getBoolean
au lieu degetBooleanExtra
? Il n'y a pas une telle méthode. Je viens de vérifier votre exemple - je obtenirasdf is null
. Mais merci quand même.OriginalL'auteur Mark Pazon
Activité 1
Activité 2
intent.putExtras(b)
avec le même effet". Il n'y a rien de mal avec les Infos de la classe.au-dessus de shold beau travail. en tout cas, essayez de placer les valeurs directement dans l'intention comme
intent.putExtra("asdf",false);
etintent.putExtra(AppConstants.ID_KEY,id);
OriginalL'auteur Ravi1187342