Android Listview已选择默认项

Android Listview已选择默认项,android,listview,Android,Listview,我有一个列表视图,如下所示: <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_below="@id/profile_picture" android:layout_gravity="start"

我有一个列表视图,如下所示:

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_below="@id/profile_picture"
        android:layout_gravity="start"
        android:layout_marginTop="30dp"
        android:background="#f7f7f7"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:entries="@array/navigation_drawer"
        android:listSelector="@color/navigation_selector"
        android:paddingLeft="20dp"/>


我想让列表中的第一个项目被选中,我已经尝试了list.setSelection(0),也选择了setItemChecked,但它们都不起作用。

看起来您需要列表项目上的状态感知背景,如以下部分答案所述:


也许你在找一个像这样的人

如果您阅读setSelection(在a的情况下)的说明,您会注意到:

设置当前选择的项目。如果处于触摸模式,项目将不会被选择,但仍将被正确定位。如果指定的选择位置小于0,则将选择位置为0的项目

但是您可以使用setSelection将项目设置为选中,只需将列表项目的背景设置为可绘制的颜色,以指示它已被选中

为什么会这样?嗯,setSelection更多的是一种可访问性功能,或者对于带有光标球的手机(就像原来的G1 android手机),如果它是通过触摸屏以外的输入选择的,它会显示它在屏幕上选择的内容。所以,如果你正常使用它,你不会看到任何东西