Como obter os dados de um item do ListView no qual o usuário clicou com listview.GetItemAtPosition (e.Position)?
em um aplicativo Xamarin.Android, tenho um ListView que preenchi anteriormente. No manipulador de eventos listview_ItemClick, que é acionado corretamente, eu gostaria de recuperar o texto das visualizações de item de listview clicadas, para mostrar algumas informações sobre ele em um AlertDialog.
Meu código não está funcionando porque tudo o que posso obter é um Java.Lang.Object (lvItem) e não sei como extrair dele as Views de que preciso.
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();
}
Se eu executá-lo assim, o Toast imprime:
você clicou em System.Collections.Generic.Dictionary'2 [System.String, System.String]
Observe que cada linha do ListView é composta de dois TextViews e eu preencho o ListView passando umList<Dictionary<string,string>>
para o construtor ListView Adapter.
Para simplificar:
EXIBIÇÃO DE LISTA
| textView1 | textView2 | ---> item 1
| textView1 | textView2 | ---> item 2
Se o usuário clicar no item2 do ListView, preciso recuperar o textView1.Text ou o textView2.Text do item 2.
Eu também pensei em fazer:
FindViewById<TextView>(resultsListView.GetItemIdAtPosition(e.Position);
mas o adaptador GetItemIdAtPosition retorna um longo em vez de um int e, portanto, não tenho certeza de que seja o mesmo tipo de ID.
O seguinte não está funcionando também (acho que é o mesmo delv.GetItemAtPosition(e.position)
:
lv.Adapter.GetItem(e.Position);