2011-10-15 33 views
6

tôi đang triển khai chế độ xem chia nhỏ bằng cách sử dụng đoạn mới từ Google (Android 3).Giữ mục danh sách cấp cao với SimpleCursorAdapter

khi người dùng chọn thứ gì đó từ danh sách hiển thị giá trị trong khu vực chi tiết và giữ mục danh sách nổi bật.

khi tôi sử dụng bộ chuyển đổi mảng đó là giữ cho mục danh sách tập trung sau khi thêm như sau:

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

nhưng khi tôi thay đổi để sử dụng cơ sở dữ liệu sử dụng SimpleCursorAdapter và nộp hàng tùy chỉnh xml nó là nổi bật chỉ khi tôi bấm .

"tôi muốn giữ mục nổi bật trong chế độ xem danh sách"

Trả lời

9

Bạn cần đặt kiểu được kích hoạt cho hàng danh sách của mình. Điều bắt được là tính năng này chỉ khả dụng ở cấp API 11 trở lên.

Một cách để thực hiện việc này là sử dụng hai kiểu riêng biệt. Trong res/values-v11/styles.xml, bạn có thể có:

<?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> 

Trong khi res/values/styles.xml bạn sẽ phải:

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

bố trí hàng của bạn sau đó sẽ sử dụng activated phong cách, chẳng hạn như:

<?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" 
/> 

Kết hợp với bạn hiện tại CHOICE_MODE_SINGLE logic, điều này sẽ để lại hàng của bạn kích hoạt sau khi nó được khai thác.

+0

THANKS TÔI S CH KIỂM TRA VÀ TRỞ LẠI U VỚI CÂU HỎI HOẶC THIẾT LẬP CHẤP NHẬN. – Alex

+0

cảm ơn nó được làm việc nhưng làm thế nào để thay đổi màu sắc của nhãn hiệu và ý nghĩa của giá trị-v11 – Alex

+1

@ahmed: "làm thế nào để thay đổi màu sắc của nhãn hiệu" - thay đổi những gì 'android: background' giá trị trong các điểm phong cách đến. Ngay bây giờ, nó trỏ đến một giá trị ('android: attr/activatedBackgroundIndicator') từ một chủ đề do hệ thống xác định. "ý nghĩa của các giá trị-v11" là gì - Android sẽ sử dụng tài nguyên trong thư mục đó trên các thiết bị có API cấp 11 trở lên. Các thiết bị cũ hơn sẽ bỏ qua thư mục đó. – CommonsWare

Các vấn đề liên quan