Wie erhalte ich die Daten eines ListView-Elements, auf das der Benutzer mit listview geklickt hat?

in einer Xamarin.Android-App habe ich eine ListView, die ich zuvor aufgefüllt habe. In der listview_ItemClick-Ereignisbehandlungsroutine, die korrekt ausgelöst wird, möchte ich den Text der angeklickten Listenansicht-Elementansichten abrufen, um einige Informationen dazu in einem AlertDialog anzuzeigen.

Mein Code funktioniert nicht, da ich nur auf ein Java.Lang.Object (lvItem) zugreifen kann und nicht weiß, wie ich die benötigten Views daraus extrahieren kann.

private void lv_ItemClick(object sender, AdapterView.ItemClickEventArgs e) {

    lvItem = lv.GetItemAtPosition(e.Position);
    // lvItem is a Java.Lang.Object

    Toast.MakeText(this,  + "you clicked" + lvItem, ToastLength.Long).Show();
}

Wenn ich es so starte, druckt der Toast:

Sie haben auf System.Collections.Generic.Dictionary'2 [System.String, System.String] geklickt.

Beachten Sie, dass jede ListView-Zeile aus zwei TextViews besteht und ich die ListView mit einem @ befüllList<Dictionary<string,string>> an den ListView Adapter-Konstruktor.

infacher ausgedrückt:

LISTENANSICH

| textView1 | textView2 | ---> Punkt 1

| textView1 | textView2 | ---> Punkt 2

Wenn der Benutzer auf Element2 von ListView klickt, muss TextView1.Text oder TextView2.Text von Element 2 abgerufen werden.

Ich habe auch darüber nachgedacht:

FindViewById<TextView>(resultsListView.GetItemIdAtPosition(e.Position);

Aber der Adapter GetItemIdAtPosition gibt einen Long-Wert anstelle eines Int-Werts zurück. Daher bin ich mir nicht sicher, ob es sich um dieselbe Art von ID handelt.

Das Folgende funktioniert auch nicht (ich denke, es ist das gleiche vonlv.GetItemAtPosition(e.position):

lv.Adapter.GetItem(e.Position);

Antworten auf die Frage(12)

Ihre Antwort auf die Frage