getSelectedItemPosition()始终返回-1

时间:2012-05-23 15:57:32

标签: android listactivity

我有一个扩展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>

1 个答案:

答案 0 :(得分:9)

  

然后在onListItemClick()中我使用getSelectedItemPosition()并且它总是返回-1

那是因为没有选择任何东西。 “点击”和“选择”是分开的事情。 ListView中的“选择”是通过指点设备(D-pad,轨迹球,箭头键等)完成的。

相关问题