Android - Vorsatz.putExtra() Nicht
Ich kann nicht scheinen, um meine zusätzlichen Informationen zugestellt bekommen, zusammen mit einer Absicht. Die Absicht lädt die nächste Aktivität richtig, aber ohne payload.
Anrufer:
//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);
}
Empfänger:
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();
}
}
Manifest:
<?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>
Ich bin mir nicht sicher, was mir fehlt, aber meiner hält, wenn Toasten null.
Edit: Wenn ich Toast oder Melden Sie die id
variable, bekommt putExtra()
'd, es ist gesetzt.
InformationsquelleAutor Josh | 2011-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihre ursprüngliche Aktivität, setzen Sie "_id" als extra in Ihrer Absicht, aber in der zweiten Aktivität, die Sie versuchen, abrufen, die lang von den savedInstanceState.
Stattdessen sollten Sie so etwas tun:
Wobei 0 der default-Wert, wenn keine lange gefunden mit dem tag "_id".
Hier eine andere Frage über den Unterschied zwischen extras aus savedInstanceState und Absichten.
Und hier ist die Entwickler-Seite über die Umsetzung/erste extras Absichten.
0 hat die tricks
InformationsquelleAutor theisenp
getIntent().getExtra() geben Sie den bundle -
Dann mit einem bundle erhalten Sie den erforderlichen Wert
Willkommen, Das ist gut , nicht zu tun, für die Erhöhung in der Partitur 🙂
InformationsquelleAutor Atmaram
Versuchen Sie dies:
LOL - keine Sorge. War zu beantworten, wie er geschrieben ist. Oh, gut.
InformationsquelleAutor SBerg413
Im Receiver ist onCreate (), die Sie brauchen, um die übergebene variable mit
savedInstance wird nur verwendet, wenn Sie Ihre Aktivität hergestellt wird.
InformationsquelleAutor source.rar
Neeraj war fast richtig. Verwenden
getIntent()
zum abrufen der Daten, die übergeben werden mit der Absicht verwendet, um die Aktion starten.mDateId = getIntent().getLongExtra("_id", -1);
savedInstanceState
dient zum abrufen von Daten gespeichert, wenn die Aktivität unterbrochen wird.InformationsquelleAutor mich
versuchen, diese
InformationsquelleAutor Plamen Nikolov
verwenden
mDateId = intent.getLongExtra("_id", -1);
InformationsquelleAutor Neeraj Nama