2010-03-12 15 views
6

Ich erhalte einen Wert von -1, wenn ich versuche, die ausgewählte Elementposition in meiner bereits vorhandenen Liste anzuzeigen.Android: Listenansicht Ausgewähltes Element -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)); 
     } 
    } 
); 

Zu meiner Liste Ansicht füllen verwende ich den folgenden Code:

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}); 

Jede Idee?

Vielen Dank im Voraus.

Mit freundlichen Grüßen.

Jose.

Antwort

22

Das bedeutet, dass keine Zeile ausgewählt ist. Die documentation besagt, dass getSelectedItemPosition() Rückkehr:

int Position (beginnend bei 0) oder INVALID_POSITION wenn es nichts ausgewählt.

Und INVALID_POSITION ist -1.

Beachten Sie, dass Sie getSelectedItemPosition() von einem OnClickListener aufrufen. Klick und Auswahl sind nicht unbedingt miteinander verknüpft. Die Auswahl beruht auf der Verwendung des Steuerkreuzes oder des Trackballs, um durch den Listeninhalt zu navigieren. Wenn der Benutzer auf den Bildschirm klickt (oder auf den Emulator klickt), gibt es keine Auswahl mehr, aber es wird weiterhin ein Klickereignis geben.

Der von Ihnen angezeigte Wert arg2 ist die Position des angeklickten Elements in der Liste.

+0

Unglaubliche Antwort, es war sehr, sehr nützlich, vielen Dank. Grüße. Jose. – Sosi

Verwandte Themen