我希望在API小于14时在复选框和切换之间切换我希望当API超过14时出现复选框我希望切换出现我尝试了很多导入切换到API少于14但我可以& #39; t如果任何人可以帮助我将开关导入到少于14的API或帮助我为不同的API制作布局
答案 0 :(得分:0)
您可以通过按以下方式检查Build.VERSION.SDK_INT
以编程方式处理此情况
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
// show Switch
} else {
// show CheckBox
}
或者您可以为不同的API级别创建不同的布局XML,并将它们放入相应的布局文件夹中,如下所示
res/layout/mylayout.xml (API Level 8+)
res/layout-v11/mylayout.xml (API Level 11+)
res/layout-v14/mylayout.xml (API Level 14+)
答案 1 :(得分:0)
使用资源文件夹作为默认使用CheckBox
,使用Switch
作为API级别14或更高版本。
res/layout/compound_button.xml
:
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
res/layout-v14/compound_button.xml
:
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
然后,您可以在其他布局中加入compound_button
,例如activity_main.xml
:
<include
android:id="@+id/turbo"
layout="@layout/compound_button" />
由于CheckBox
和Switch
都扩展了CompoundButton
,因此您可以在Java代码中获得此值:
CompoundButton turbo = (CompoundButton) findViewById(R.id.turbo);
if (!turbo.isChecked()) {
// Slow down the computer
}
观看我的演讲以获取更多信息(从21:25开始): http://www.infoq.com/presentations/android-fragmentation-myth