2013-08-12 1 views
1

Я хочу получить индекс SelectedItem ListView. Я выбираю элемент, постукивая по элементу. Событие OnItemClick отлично работает, но getSelectedItemPosition() возвращает -1.Элемент ListView «не хочу быть выбранным» getSelectedItemPosition return -1

Что я делаю неправильно?

XML:

<ListView 
    android:id="@+id/lvAddEdtList" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:choiceMode="singleChoice" 
    android:drawSelectorOnTop="true" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:listSelector="?android:attr/listChoiceIndicatorSingle" /> 

В деятельности:

lvAddEdtDel.setAdapter(namesList); 
lvAddEdtDel.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      lvAddEdtDel.setSelection(position); 
      view.setSelected(true); 

     } 
    }); 

public void onClick(View v) { 
if(lvAddEdtDel.getSelectedItemPosition() < 0) 
{ 
    Toast.makeText(getApplicationContext(), getString(R.string.ItemNotSelected),Toast.LENGTH_LONG).show();       
} 
}); 

извините за мой английский

+0

попытайтесь сравнить его с длиной списка. – Piyush

+0

Я не понимаю, почему – GIKO

ответ

3

Я решил проблему сам. Выбран вариант адаптера: android.R.layout.simple_list_item_1;

В моем случае необходимо было выбрать: android.R.layout.simple_list_item_single_choice;

В режиме касания необходимо убрать getCheckedItemPosition

+0

'getCheckedItemPosition' работал для меня – neworld

Смежные вопросы