Android: список Показать выбранный пункт -1 - PullRequest
6 голосов
/ 12 марта 2010

Я получаю значение -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));
       }
   }
);

Чтобы заполнить мой список, я использую следующий код:

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

Есть идеи?

Заранее спасибо.

С наилучшими пожеланиями.

Хосе.

1 Ответ

22 голосов
/ 12 марта 2010

Это означает, что строка не выбрана. документация гласит, что getSelectedItemPosition() возвращает:

int Позиция (начиная с 0) или INVALID_POSITION если ничего нет выбран.

А INVALID_POSITION составляет -1.

Обратите внимание, что вы звоните getSelectedItemPosition() с номера OnClickListener. Клик и выбор не обязательно связаны между собой. Выбор осуществляется с помощью D-pad или трекбола для навигации по содержимому списка. Если пользователь нажимает на экран (или нажимает в эмуляторе), выбора больше не будет, но все равно будет событие щелчка.

Отображаемое значение arg2 - это позиция нажатого элемента в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...