2010-03-12 45 views
6

Obtengo un -1 cuando trato de obtener la posición del elemento seleccionado en mi lista de lista que ya está llena.Android: Vista en lista Elemento seleccionado -1

list.setOnItemClickListener 
(
    new AdapterView.OnItemClickListener() 
    { 
     public void onItemClick(AdapterView adapterView, View view,int arg2, long arg3) 
     { 
      int selectedPosition = adapterView.getSelectedItemPosition(); 
      ShowAlert(String.valueOf(selectedPosition)); 
     } 
    } 
); 

para llenar mi lista de vista yo uso el siguiente código:

SimpleAdapter mSchedule = new SimpleAdapter(
      this, 
      mylist, 
      R.layout.listviewtest, 
      new String[] {"test1", "test2", "test3"}, 
      new int[] {R.id.TextView_websitename, R.id.TextView_keywords, R.id.TextView_backlink}); 

Alguna idea?

Gracias de antemano.

Atentamente.

Jose.

Respuesta

22

Eso significa que no hay ninguna fila seleccionada. El documentation establece que getSelectedItemPosition() devuelve:

int posición (comenzando en 0), o INVALID_POSITION si no hay nada seleccionado.

Y INVALID_POSITION es -1.

Tenga en cuenta que llama al getSelectedItemPosition() desde OnClickListener. El clic y la selección no están necesariamente relacionados. La selección proviene del uso del D-pad o trackball para navegar por los contenidos de la lista. Si el usuario toca en la pantalla (o hace clic en el emulador), ya no habrá selección, pero seguirá habiendo un evento de clic.

El valor arg2 que muestra es la posición del elemento al que se hace clic en la lista.

+0

Respuesta increíble, fue muy, muy útil, muchas gracias. Atentamente. Jose. – Sosi

Cuestiones relacionadas