如何在失去焦点后突出显示所选列表项?

时间:2011-10-11 12:13:42

标签: android android-listview

我正在制作的其中一项活动包含ListViewGridView。 gridview的内容将根据ListView中选择的项目进行更新。现在,我正在使用选择器通过更改其背景来突出显示ListView中的所选项目。但是一旦ListView失去焦点,选定的项目就不再突出显示。有没有办法在列表视图丢失焦点后突出显示列表项?

2 个答案:

答案 0 :(得分:1)

设置选择器以识别已激活的状态

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Selected Item -->
    <item android:state_selected="true"
        android:drawable="@android:color/holo_blue_light" />
    <item android:state_activated="true"
        android:drawable="@android:color/holo_blue_light" />

    <!-- Default Item -->
    <item android:state_selected="false"
        android:drawable="@android:color/white" />
</selector>

不仅选择,而且激活onListItemClick

@Override
    public void onListItemClick(ListView listView, View view, int position,
            long id) {
        super.onListItemClick(listView, view, position, id);

        view.setSelected(true);
        view.setActivated(true);
}

答案 1 :(得分:0)

我认为你想要保持某些List的点击项的状态。为此,您可以使用布尔ArrayList来维护列表的每一行的状态。您可以在适配器的getView()中使用此ArrayList。根据状态设置背景。例如在getView()中设置View的背景图像或颜色。 Here是我正在谈论的一个想法。您也可以将它用于您的目的。