Android:使用Switch所需的API?

Rob*_*Rob 15 api android android-switch

由于以下错误,我无法在我的项目中插入Switch:

查看需要API级别14(当前最小值为8):

但在我的项目属性中,我使用的是Platform 4.1和API Level 16.那么出了什么问题?

suo*_*i35 74

谷歌IO 2012有一个很好的讲座(从幻灯片32开始)

这是一个详细的例子:

通过将其放在/ res/layout-v14中为ICS +版本创建单独的布局XML文件.生成的文件结构如下所示:

res/layout
- mainlayout.xml
- compound_button.xml
res/layout-v14
- compound_button.xml
Run Code Online (Sandbox Code Playgroud)

当您的应用程序在v14或更高版本上运行时,Android将在layout-v14目录中查找资源.

在mainlayout.xml中放置一个include,它将在运行应用程序时引入相关的compound_button.xml:

<include layout="@layout/compound_button" />
Run Code Online (Sandbox Code Playgroud)

对于4.0之前的布局,我们需要一个复选框,因此将/layout/compound_button.xml创建为合并,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" >

    <CheckBox
        android:id="@+id/enabled"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enable" />

</merge>
Run Code Online (Sandbox Code Playgroud)

然后对于4.0+布局我们想要一个开关,所以创建/layout-v14/compound_button.xml作为合并,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" >

    <Switch
        android:id="@+id/enabled"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enable"
        tools:ignore="NewApi" />

</merge>
Run Code Online (Sandbox Code Playgroud)

当然,一定要适当地设置你的最小值和目标:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" />
Run Code Online (Sandbox Code Playgroud)

  • 链接被破坏,但解决方案是完美的!只说你必须在你的java类中转换CompoundButton来控制switch和checkbox.谢谢! (3认同)

azg*_*fer 5

在AndroidManifest.xml文件中查找:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"/>
Run Code Online (Sandbox Code Playgroud)

将minSdkVersion更改为14.

  • 如果您想要定位较旧的Android版本,则可能必须使用"ToggleButton".不像Switch那么好看,但它适用于Android 2.1及更高版本. (2认同)