Android - Intent.putExtra() à Défaut
Je n'arrive pas à obtenir mes informations supplémentaires pour obtenir envoyé avec une intention. L'intention des charges de la prochaine activité proprement, mais sans la charge utile.
De l'appelant:
//a list item was clicked
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Intent i = new Intent(this, ProgramTracks.class);
i.putExtra("_id", id);
startActivity(i);
}
Récepteur:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.program_tracks);
if( savedInstanceState != null )
{
mDateId = savedInstanceState != null ? savedInstanceState.getLong("_id") : null;
Toast.makeText(this, "ID " + mDateId, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this, "Null!", Toast.LENGTH_SHORT).show();
}
}
Manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.site.android.app"
android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ProgramTracks" android:label="@string/app_name">
</activity>
</application>
</manifest>
Je ne suis pas sûr de ce que je suis absent, mais si mon garde Grillage null.
Edit: Si je Toast ou Journal de la id
variable qui est putExtra()
'd, c'est réglé.
OriginalL'auteur Josh | 2011-06-24
Vous devez vous connecter pour publier un commentaire.
Dans l'original de votre activité, vous mettez "_id" comme un extra dans votre intention, mais dans la deuxième activité, vous tentez de récupérer le long de la savedInstanceState.
Au lieu de cela, vous devriez faire quelque chose comme ceci:
Où 0 est la valeur par défaut si pas de long est trouvé avec le tag "_id".
Voici une autre question à propos de la différence entre le fait d'avoir des extras de savedInstanceState et les Intentions.
Et voici le page développeur sur la mise/obtenir les extras dans les Intentions.
0 ne les astuces
OriginalL'auteur theisenp
getIntent().getExtra() vous donnera le bundle
Puis, à partir de bundle, vous pouvez obtenir la valeur requise
Bienvenue, Thats fine , ne pas faire de l'augmentation du score 🙂
OriginalL'auteur Atmaram
Essayez ceci:
LOL pas de soucis. Était en train de répondre comme il l'a posté. Oh, bien.
OriginalL'auteur SBerg413
Dans votre Récepteur onCreate (), vous devez obtenir le passé de la variable à l'aide de
savedInstance est utilisé uniquement si votre Activité est en train d'être recréé.
OriginalL'auteur source.rar
Neeraj était presque droit. Utilisation
getIntent()
pour récupérer les données transmises avec l'intention utilisé pour démarrer l'activité.mDateId = getIntent().getLongExtra("_id", -1);
savedInstanceState
est utilisé pour récupérer les données enregistrées lors de la suspension de l'activité.OriginalL'auteur mich
essayer cette
OriginalL'auteur Plamen Nikolov
utilisation
mDateId = intent.getLongExtra("_id", -1);
OriginalL'auteur Neeraj Nama