Android: ¿La API necesaria para usar Switch?

No puedo insertar un conmutador en mi proyecto debido al siguiente error:

La vista requiere el nivel API 14 (el min actual es 8):

Pero en las propiedades de mi proyecto, uso la plataforma 4.1 y el nivel 16 de la API. ¿Qué está mal?

6 Solutions collect form web for “Android: ¿La API necesaria para usar Switch?”

Hay una buena lección sobre esto desde Google IO 2012 (comenzando en la diapositiva 32)

He aquí un ejemplo detallado:

Cree un archivo XML de diseño separado para las versiones de ICS + colocándolo en / res / layout-v14. La estructura de archivos resultante se verá así:

res/layout - mainlayout.xml - compound_button.xml res/layout-v14 - compound_button.xml 

Android buscará recursos en el directorio layout-v14 cuando su aplicación se ejecute en v14 o superior.

Coloque una inclusión en mainlayout.xml que extraiga el correspondiente compound_button.xml cuando se ejecute la aplicación:

 <include layout="@layout/compound_button" /> 

Para el diseño pre 4.0 queremos una casilla de verificación, así que cree /layout/compound_button.xml como una combinación como sigue:

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

Y luego para el diseño 4.0 + queremos un conmutador, así que cree /layout-v14/compound_button.xml como una combinación como sigue:

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

Por supuesto, asegúrese de establecer su min y objetivos de manera adecuada:

 <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" /> 

Busque esto en su archivo AndroidManifest.xml:

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"/> 

Cambie minSdkVersion a 14.

Switch requiere API 14, para la versión antigua, por favor use SwithCompat:

 <android.support.v7.widget.SwitchCompat android:id="@+id/switch_compat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:checked="true" android:textOff="OFF" android:textOn="ON" app:showText="false" android:focusable="false" android:focusableInTouchMode="false"/> 

En setOnCheckedChangeListener:

 witchCompat switchCompat = (SwitchCompat)convertView.findViewById(R.id.switch_compat); switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { textView.setText("check"); } else { textView.setText("unCheck"); } } }); 

Espero te ayude

Su android:minSdkVersion se establece en 8. Esto significa que su aplicación se ejecutará en API-8 (2.2.1) y superior, pero se bloqueará porque Switch no está disponible

Una solución mejor es tener dos diseños xml diferentes en la carpeta layouts y layouts-v14 con los mismos nombres y el mismo código. En layouts su toggleButton / checkboxes y en layouts-v14 su switch y dinámicamente comprueban la versión de api e inflar el diseño respectivo.

Mira hay dos maneras de resolver tu problema primero o bien cambias tu minSdkVersion <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"/> de 8 a 14 o defina otro diseño que contenga Switch in layout-v14 Puede crear manualmente esta carpeta en directorio res

  • Cómo instalar Android SDK más antiguo en Eclipse
  • Librería ligera de api de indexación de texto para Android
  • ¿Cómo usar la cámara de Android o la API de la cámara2 para admitir versiones antiguas y nuevas de la API sin notas de reprobación?
  • Publicar campos en este formato con Retrofit
  • Youtube API v3 buscar videos, recuperar el título y url
  • ¿Qué es un token API?
  • Prueba de unidad Android: ¿Cómo hacer que una clase sea más comprobable?
  • Hotspot multiplexado en Android
  • Actualizar ADT de 21.0 a 21.1
  • MapActivity: establece APIKey de forma programática
  • Escanea tarjetas de negocios con Phonegap
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.