2011-10-15 93 views
6

我正在實施使用谷歌(Android 3)的新片段的分割視圖。保持與SimpleCursorAdapter highlite列表項目

當用戶從列表中選擇某些東西時,它將在詳細信息區域中顯示值,並且保持列表項目高亮顯示

當我用陣列適配器是保持列表項集中後添加以下內容:

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
getListView().setItemChecked(postition, true); 

,但是當我改變使用使用的數據庫SimpleCursorAdapter和自定義行XML文件是亮點只是當我按下。

「我想保持亮點項目列表視圖」

回答

9

您需要設置激活樣式列表行。問題在於,這隻適用於API Level 11及更高版本。

做到這一點的一種方法是使用兩種不同的樣式。在res/values-v11/styles.xml,你可以有:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="activated" parent="android:Theme.Holo"> 
    <item name="android:background">?android:attr/activatedBackgroundIndicator</item> 
    </style> 
</resources> 

res/values/styles.xml你會:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="activated"> 
    </style> 
</resources> 

你行佈局將然後使用該activated風格,比如:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:layout_marginLeft="4dip" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    style="@style/activated" 
/> 

結合您的現有的CHOICE_MODE_SINGLE邏輯,這會使您的行在點擊後處於激活狀態。

+0

謝謝,我將檢查它並返回問題或設置爲接受。 – Alex

+0

感謝它的工作,但如何改變標記的顏色和價值的含義是什麼 - v11 – Alex

+1

@ahmed:「如何改變標記的顏色」 - 改變樣式點中的「android:background」值至。現在,它指向一個來自系統定義的主題的值('android:attr/activatedBackgroundIndicator')。 「values-v11的含義是什麼」 - Android將在具有API Level 11和更高版本的設備上使用該目錄中的資源。舊設備將忽略該目錄。 – CommonsWare