我正在使用Google的新片段(Android 3)实现分割视图。
当用户从列表中选择某些内容时,它会在详细信息区域显示值,保持列表项突出显示。
当我使用数组适配器时,它会在添加以下内容后保持列表项集中:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
getListView().setItemChecked(postition, true);
但是当我使用 SimpleCursorAdapter 和自定义行xml文件更改为使用数据库时,只要我按下它就会突出显示。
“我想在列表视图中保持突出显示项目”
答案 0 :(得分:9)
您需要为列表行设置激活的样式。问题在于,这仅适用于API级别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
逻辑,这会在点击后激活您的行。