2011-10-11 62 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); 
} 
相關問題