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


 
Herramientas
  #1  
Viejo 10/02/15, 16:45:53
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de LEAJIM_454
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
Mensajes: 215
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Versión de ROM: 2.3.6 Stock
Tu operador: Otra
Mencionado: 1 comentarios
Tagged: 0 hilos
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
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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.
Responder Con Cita
  #4  
Viejo 10/02/15, 18:15:56
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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.
Responder Con Cita
  #6  
Viejo 11/02/15, 00:11:29
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a mocelet su comentario:
  #8  
Viejo 15/02/15, 18:21:59
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
¿Tu pantalla de opciones es una activity o un fragment?

¿El cambio de color lo haces en el onResume?
Responder Con Cita
  #10  
Viejo 16/02/15, 09:39:10
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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.
Responder Con Cita
Gracias de parte de:
  #12  
Viejo 18/02/15, 17:05:16
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de kaiser75
kaiser75 kaiser75 no está en línea
Miembro del foro
Mensajes: 493
 
Fecha de registro: ene 2011
Mensajes: 493
Modelo de smartphone: Vernee Mars, Galaxy S3
Tu operador: Orange
Mencionado: 3 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 08:57:12 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007