2011-10-11 58 views
3

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

+0

我使用部分成功'choiceMode =“singleChoice “'。当我使用CheckedTextView选择背景时,选择器确实很好。但是当我使用自定义CheckedLinearLayout作为每个项目的布局时,我遇到了一些问题。一旦我修好了,我会更新这个线程。 – Gunanaresh

回答

0

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

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); 
} 
相关问题