设置Android背景&持久性菜单栏 - 在旧版本上使用属性会导致崩溃 - 是否存在主题/模式方法?

在Android 3.0中,“已检查”的概念可以使用“激活”背景进行渲染。这为您提供了在点击列表片段时看到的持久性栏,为列表右侧提供片段的上下文(例如,点击Gmail中的文件夹突出显示该文件夹并打开另一个列表片段以显示该文件夹中的对话)。 例如,片段样本显示如下内容:
setListAdapter(new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));
该资源(
android.R.layout.simple_list_item_activated_1
)是Android 3.0的新功能。它被“激活”的原因是:
android:background="?android:attr/activatedBackgroundIndicator"
该属性值是Android 3.0的新功能,如果您尝试在早期版本的Android上使用它,将导致您崩溃,据我所知。我想为3.0 / large / landscape组合设置背景为这个魔术值,否则将跳过它。 我可以通过两个单独版本的布局来实现这一点,一个在
-v11
资源集中,一个在常规资源集中。不过,这比我想要的要少一些,因为大部分布局是相同的,只有这一个属性被包含或被跳过。 我尝试使用可绘制的资源别名,因此
android:background
可以引用别名,别名将处理
-v11
区分,但
<bitmap>
drawable似乎不喜欢
android:src="@null"
。 我怀疑这个问题有一种样式和主题的方法,但由于我从来没有完全包围那些(我更尴尬的Android知识差距之一),我不完全确定该怎么做。 有没有人制定过在3.0上使用“激活”并在3.0之前跳过它的模式,超出了单独的布局? 谢谢!     
已邀请:
风格是你的朋友.... 有两个值目录,一个是values-v11,另一个是默认值。 每个值目录包含一个styles.xml,区别在于一个包含的默认值;
<style name="listViewActivatedStyle"/>
值-v11包含;
<style name="listViewActivatedStyle">
   <item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>
然后你可以使用一个单一的布局;
style="@style/listViewActivatedStyle"
并选择适当的一个。     

要回复问题请先登录注册