Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 10/02/15, 16:45:53
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Cambiar color de Action Bar desde otra clase

Hay manera de llamar "ActionBar actionBar = getSupportActionBar();" desde una clase externa y despues llamarla en las activitys?. Tengo este codigo en cada activity, y me funciana bien, como puedo ponerlo en una clase externa?:

ActionBar actionBar = getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#dcdcdc")));
__________________
Responder Con Cita


  #2  
Viejo 10/02/15, 17:34:40
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
Tal vez lo que tu buscas es Shared Preferences, no veo otra manera de hacer eso, el genio de Kriogen o mocelet tal vez conocen otra forma, saludos.
Responder Con Cita
  #3  
Viejo 10/02/15, 18:01:15
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Mientras tengas la referencia al objeto ActionBar puedes cambiar el color desde donde quieras. La referencia la consigues bien porque tu clase externa se la pida a la actividad o bien porque la actividad se lo comunique a tu clase externa en el onResume por ejemplo.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #4  
Viejo 10/02/15, 18:15:56
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Muy muy muy mala idea usar referencias a la View de una Activity (incluida la ActionBar) desde otra Activity. Cuando vuelves atrás a una Activity no tiene porque ser la misma Activity, puede haberse destruido y volverse a crear, y por tanto no mantener las referencias y obtener un precioso NullPointerException cuando accedes a ella desde otra Activity.

¿Cómo cambiar la ActionBar de una Activity desde otra Activity posterior? Pues lanzándola con startActivityForResult y comprobar el Intent en onActivityResult o lo que ha dicho LEAJIM_454, almacenando el valor en una SharedPreference y comprobando el valor en el onResume de la Activity, que siempre se ejecutará al volver sea nueva o sea la misma.
Responder Con Cita
  #5  
Viejo 10/02/15, 18:38:07
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Yo he entendido que quiere tener una clase externa a la actividad que cambie el color de la actividad actual (no de la anterior, que efectivamente igual ni existe ya), sea cual sea.

Si solo quiere cambiar el color al iniciar, que lo haga en el onResume claro, pero si quiere cambiarlo en cualquier otro momento tiene que saber cuál es la actividad actual. La única forma, por fea que sea, es guardar la referencia a la actividad.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #6  
Viejo 11/02/15, 00:11:29
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Como bien dice kriogeN, lo que quiero es poder cambiar el color desde la pantalla de ajustes con shared preferences, pero no doy con ello, ah y gracias kriogeN...porque tenia el precioso NullPointerException y no sabia de por donde me atacaba jajaja.
Responder Con Cita
  #7  
Viejo 11/02/15, 11:37:17
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Entonces no quieres cambiar el color desde otra clase

En tu pantalla de ajustes guardas el color nada más, en Shared Preferences por ejemplo.

Pero el color propiamente lo cambia la propia actividad que tenga la barra, leyendo el color de la preferencia en el onResume y aplicándolo como haces ahora.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Los siguientes 2 usuarios han agradecido a mocelet su comentario:
  #8  
Viejo 15/02/15, 18:21:59
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Vale, he conseguido cambiar el color desde la pantalla de ajustes, pero, tengo que salir y volver a entrar en la aplicacion para que los cambios se apliquen
__________________
Responder Con Cita
  #9  
Viejo 15/02/15, 18:58:02
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

¿Tu pantalla de opciones es una activity o un fragment?

¿El cambio de color lo haces en el onResume?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #10  
Viejo 16/02/15, 09:39:10
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
La pantalla de opciones es un activity la cual extiendo de PreferenceActivity, y que accedo a ella desde MainActivity.
__________________
Responder Con Cita
  #11  
Viejo 16/02/15, 10:47:45
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Bien, entonces el color de la barra lo tienes que cambiar desde el onResume de MainActivity, leyendo la preferencia y estableciendo el color. Y así no te hace falta volver a iniciar la app.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Gracias de parte de:
  #12  
Viejo 18/02/15, 17:05:16
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Bueno, tengo un problemilla, a veces al volver a la activity principal desde otra activity (no la de preferencias) el color de la barra me desaparece y se queda en blanco
__________________
Responder Con Cita
  #13  
Viejo 18/02/15, 17:53:56
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por kaiser75 Ver Mensaje
Bueno, tengo un problemilla, a veces al volver a la activity principal desde otra activity (no la de preferencias) el color de la barra me desaparece y se queda en blanco
¿Estás guardando el valor en una SharedPreference y lo recuperas cada vez?

Si se pone de color blanco tiene pinta de que tomas un valor que por defecto es 0 (en ese caso realmente no sería blanco, sería totalmente transparente) y después no lo cambias.
Responder Con Cita
Gracias de parte de:
  #14  
Viejo 21/02/15, 18:52:17
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Pues si, efectivamente me dejaba el valor por defecto en 0, le puse 1 y ya funciona correctamente...Gracias kriogeN
__________________
Responder Con Cita
  #15  
Viejo 29/06/15, 18:48:25
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Volviendo al tema del color de la Action Bar, me pasa una cosa curiosa, tengo una pantalla de ajustes donde se puede cambiar el color de la barra, me funciona bien, lo que pasa es que por ejemplo al arrancar la aplicacion la barra sale negra durante 1 segundo y luego aparece la main activity con la barra de color, hay manera de evitar ese cambio de negro a color al inicio de la aplicacion?
__________________
Responder Con Cita
  #16  
Viejo 29/06/15, 23:34:47
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por kaiser75 Ver Mensaje
Volviendo al tema del color de la Action Bar, me pasa una cosa curiosa, tengo una pantalla de ajustes donde se puede cambiar el color de la barra, me funciona bien, lo que pasa es que por ejemplo al arrancar la aplicacion la barra sale negra durante 1 segundo y luego aparece la main activity con la barra de color, hay manera de evitar ese cambio de negro a color al inicio de la aplicacion?
Es algo que ocurre en todas las aplicaciones de Android, la única forma de que no aparezca la ActionBar negra es indicar en la configuración del Theme que no tiene ActionBar y luego activarla en el onCreate.
Responder Con Cita
Gracias de parte de:
  #17  
Viejo 01/07/15, 10:35:20
Array

[xs_avatar]
kaiser75 kaiser75 no está en línea
Miembro del foro
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Perfecto, he creado un estilo sin ActionBar y ahora no me sale la barra negra, arranca la aplicacion bastante mas rapido, gracias kriogeN
__________________
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 09:04:21 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /