Ich konnte keine Dokumentation für die Funktion online finden, Google fand nichts, auch nur entfernt nützlich. Ich habe versucht, den ursprünglichen Code zu finden, aber es ist fehlgeschlagen :) (Ich bezweifle, dass ich es trotzdem verstanden hätte.) Also weiß jemand, was diese Funktion eigentlich macht; Welche "Item ID" gibt es zurück?Was gibt GetItemIdAtPosition in MonoDroid zurück?
Ich dachte, dass, wenn GetItemAtPosition
die in einem Element enthaltene Zeichenfolge zurückgibt, GetItemIdAtPosition
möglicherweise den Inhalt eines Attributs "name" zurückgibt. Aber wie immer ist es nicht wie erwartet.
benutzen ich einen Spinner auf dieser Basis:
<string-array name="choices">
<item>Choose action</item>
<item name="3">Back to 3</item>
<item name="2">Back to 2</item>
</string-array>
einen Toast für die Ausgabe verwenden, wenn eine Wahl aus dem Spinner ausgewählt ist:
private void choice_callback (object sender, ItemEventArgs e) {
Spinner spinner = (Spinner)sender;
string toast = string.Format ("Chosen action: {0} at pos {1} ID {2}",
spinner.GetItemAtPosition (e.Position),
e.Position,
spinner.GetItemIdAtPosition(e.Position));
Toast.MakeText (this, toast, ToastLength.Short).Show();
}
Ausgänge „Gewählte Aktion: Zurück zu 3 bei po 1 ID 1 "und ähnlich; mit anderen Worten, die Rückkehr von spinner.GetItemIdAtPosition(e.Position)
scheint die gleiche zu sein wie e.Position
selbst.
Randnotiz: Die App basiert auf diesem Spinner-Tutorial: http://docs.xamarin.com/android/tutorials/User_Interface/spinner. Ich habe nur die oben angezeigten Bits übernommen, um zu überprüfen, ob Elemente in einer Dropdown-Liste anders als anhand ihrer Position identifiziert werden können.
Vielen Dank, das macht Sinn! Wissen Sie wo die ID-Werte normalerweise herkommen? Ich denke für den Moment werde ich versuchen und sehen, ob ich Ihr Beispiel verwenden kann, um die "Name" -Werte oder etwas Ähnliches zu extrahieren. – Armatus
Wenn Sie die Methode 'ArrayAdapter.CreateFromResource (...)' verwenden, um den Adapter zu erhalten, denke ich, dass es die Position als ID - ID des Elements bei Pos 0 ist 0, ID von Element 1 ist 1. Ich denke alle der Adapter tun dies. Vielleicht kann jemand anderes kommentieren? – Matthew
Wenn Sie sich den Code für ArrayAdapter ansehen, können Sie sehen, dass die Methode getItemId() nur die Position zurückgibt: https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/ArrayAdapter. java # L354 –