Recibo una RuntimeException en Android 2.3.5 pero estoy usando Theme.AppCompat (res / values / themes.xml). Este es el teléfono: http://www.gsmarena.com/samsung_galaxy_y_s5360-4117.php
<!-- res/values/themes.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Styled" parent="@style/Theme.AppCompat">
<item name="actionBarStyle">@style/QueryActionBar</item>
<item name="android:actionBarStyle">@style/QueryActionBar</item>
</style>
<style name="QueryActionBar" parent="@style/Widget.AppCompat.ActionBar">
<item name="background">@color/blueback</item>
<item name="android:background">@color/blueback</item>
<item name="backgroundSplit">@color/blueback</item>
<item name="android:backgroundSplit">@color/blueback</item>
</style>
</resources>
Aquí está el archivo para values-v11.
<!-- res/values-v11/themes.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="QueryTheme" parent="@android:style/Theme.Holo">
<!-- Any customizations for your app running on devices with Theme.Holo here -->
</style>
</resources>
Aquí está el error.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.txt2lrn.www/com.txt2lrn.www.LandingActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:102)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at com.txt2lrn.www.LandingActivity.onCreate(LandingActivity.java:95)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
... 11 more
Lo siento amigos, también tengo android: theme = "@ style / Theme.Styled" definido en AndroidManifest.xml.
Theme.Styled
?Respuestas:
Si está extendiendo ActionBarActivity en su MainActivity, también tendrá que cambiar el tema principal en values-v11.
Entonces el style.xml en values-v11 será -
EDITAR: Le recomendaría que deje de usar ActionBar y comience a usar el diseño de AppBar incluido en la Biblioteca de soporte de diseño de Android
fuente
Para agregar simplemente ActionBar Compat, su actividad o aplicación debe usar el tema @ style / Theme.AppCompat en AndroidManifest.xml de esta manera:
Esto agregará la barra de acción en actividad (o todas las actividades si agregó este tema a la aplicación)
Pero generalmente necesitas personalizar tu barra de acciones. Para hacer esto, necesita crear dos estilos con Theme.AppCompat parent, por ejemplo, "@ style / Theme.AppCompat.Light". El primero será para api 11> = (versiones de android con barra de acción de Android incorporada), el segundo para api 7-10 (sin barra de acción incorporada).
Veamos el primer estilo. Se ubicará en res / values-v11 / styles.xml . Se verá así:
Y debe tener el mismo estilo para la API 7-10. Se ubicará en res / values / styles.xml , PERO debido a que los niveles de API aún no conocen los elementos originales de estilo de la barra de acciones de Android, deberíamos usar uno, proporcionado por la biblioteca de soporte. Los elementos de ActionBar Compat se definen como el androide original, pero sin la parte "android:" al frente:
Por favor, marque que, incluso si los niveles de API superiores a 10 ya tienen barra de acción, aún debe usar los estilos de AppCompat. Si no lo hace, tendrá este error al iniciar Acitvity en dispositivos con Android 3.0 y superior:
Aquí está el enlace de este artículo original http://android-developers.blogspot.com/2013/08/actionbarcompat-and-io-2013-app-source.html escrito por Chris Banes.
PD Perdón por mi inglés
fuente
Verifique y asegúrese de que no tiene otra carpeta de valores que haga referencia a theme.styled y no use el tema AppCompat
es decir
values-v11
carpetafuente
Prueba esto...
styles.xml
AndroidManifest.xml
fuente
Tu se
Activity
está extendiendo, loActionBarActivity
que requiereAppCompat.theme
que se aplique. Cambie deActionBarActivity
aActivity
oFragmentActivity
, solucionará el problema.fuente
Solo hazlo Construir -> Proyecto Limpio. Creo que esto solucionará tu problema.
fuente
Claro que sí. Nada se aplicará mágicamente
Theme.Styled
a una actividad. Debe declarar que sus actividades, o toda su aplicación, está usandoTheme.Styled
, por ejemplo,:fuente
Encontré este error cuando intentaba crear un DialogBox cuando se toma alguna acción dentro de la clase CustomAdapter. Esta no era una actividad sino una clase de adaptador. Después de 36 horas de esfuerzos y buscando soluciones, se me ocurrió esto.
Envíe la actividad como un parámetro mientras llama al CustomAdapter.
Defina las variables en el Adaptador personalizado.
Llame al constructor así.
Y finalmente, al crear el cuadro de diálogo dentro de la clase del adaptador, hágalo así.
Espero que esto te ayude
fuente
Acabo de mover mi aplicación de ActionBarSherlock a ActionBarCompat. Intenta declarar tu antiguo tema así:
Luego configure el tema en su AndroidManifest.xml:
fuente
Tuve tal bloqueo en los dispositivos Samsung a pesar de que la actividad usaba Theme.AppCompat . La causa raíz estaba relacionada con optimizaciones extrañas en el lado de Samsung:
Mi solución fue simplemente eliminar
android:launchMode="singleTask"
fuente
android:launchMode="singleTask"
.android:launchMode="singleTask"
y todas mis actividades usan el tema AppCompat: /en mi caso hice una vista personalizada que agregué al constructor de vista personalizada
el contexto correcto es la actividad, así que lo cambié a:
o
fuente
Para mi vista de lista, estoy usando un Adaptador personalizado que extiende ArrayAdapter. en listiview tengo 2 botones, uno de los botones como Custom AlertDialogBox. Ej .: Actividad parentActivity; Constructor para adaptador `
`llamar al adaptador desde MainActivty
ahora escriba su diálogo de alerta dentro de su botón que está en la clase Adaptador
fuente
para resolver o meu problema, eu apenas adicionei na minha MainActivity ("Theme = Para resolver mi problema, acabo de agregarlo en mi MainActivity (" Theme = "@ style / MyTheme" ") donde MyTheme es el nombre de mi tema
fuente