列表视图默认项目已选中

时间:2014-04-23 19:14:27

标签: 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"
        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,但没有一个能够工作。

2 个答案:

答案 0 :(得分:0)

您的列表项似乎需要状态感知背景,如下面的部分答案中所述:

ListView Item selection Android

答案 1 :(得分:0)

也许您正在寻找类似Spinner的内容?

如果您阅读了setSelection的说明(如果是ListView),您会注意到:

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

然而你可以做的是用setSelection将项目设置为选中,只需将列表项目的背景可绘制为不同颜色的东西,以表明它已被选中。

为什么这样工作?好吧,setSelection更多的是辅助功能,或者在带有光标球的手机(如原版G1安卓手机)的情况下,如果用触摸屏以外的输入选择它,它会显示在屏幕上选择的内容。所以,如果你正常使用它,你不会看到任何东西。