getSelectedItemPosition() всегда возвращает -1

У меня есть класс, который расширяет ListActivity, он отлично работает

Затем в onListItemClick() я использую getSelectedItemPosition() и всегда возвращаю -1

P.S getSelectedItemId() возвращает какое-то длинное число, например 994393434

public class TasksShowActivity  extends ListActivity {

    private Cursor mCursor; 
    private ListAdapter mAdapter;

    private static final String[] mContent = new String[] {
        TasksDbHelper._ID, TasksDbHelper.NAME,
        TasksDbHelper.USER};

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     

        mCursor = managedQuery(
                TasksProvider.CONTENT_URI, mContent, null, null, null);

        mAdapter = new SimpleCursorAdapter(this, 
                    R.layout.tasks, mCursor, 
                    new String[] {TasksDbHelper.NAME, TasksDbHelper.USER}, 
                    new int[] {R.id.name, R.id.date});

        setListAdapter(mAdapter);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, final long id) {
        super.onListItemClick(l, v, position, id);

      Toast toast = Toast.makeText(this, "Position: "+this.getSelectedItemPosition() , Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
    }
}

макет:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tasks_root_element">

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" 
        android:textSize="18sp"
        />
    <TextView
        android:id="@+id/date"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true"
        android:textSize="18sp" 
        android:paddingRight="10px"
        />

</RelativeLayout>

person Oleg Beat    schedule 23.05.2012    source источник
comment
Напишите свой код, мой хрустальный шар сегодня в магазине.   -  person Barak    schedule 23.05.2012
comment
Уже используется final long id из списка аргументов onListItemClick   -  person Oleg Beat    schedule 23.05.2012
comment
Почему бы вам не использовать входящий параметр position? Нет необходимости использовать метод... информация уже есть.   -  person Barak    schedule 23.05.2012


Ответы (1)


Затем в onListItemClick() я использую getSelectedItemPosition() и всегда возвращаю -1

Это потому, что ничего не выбрано. «Нажать» и «выбрать» — разные вещи. «Выбор» в ListView осуществляется с помощью указывающего устройства (D-pad, трекбол, клавиши со стрелками и т. д.).

person CommonsWare    schedule 23.05.2012