|
||
|
|
|
|||||||
| 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
|
||||
|
||||
|
Mostrar texto en determinadas fechas del calendario.
Tengo un TextView en el cual quiero mostrar un numero o texto cuando lleguen determinadas fechas, por ejemplo, el 5 de Mayo el textview muestre el texto "prueba", el 10 de Junio muestre otro texto, etc... hay manera de hacerlo?.
|
|
|
|
#2
|
||||
|
||||
|
Si te refieres a si existe alguna librería o método que haga eso, no conozco ninguno.
Pero no es muy difícil de programar, con SQLite incluido para el texto que quieres para cada fecha. |
|
#3
|
||||
|
||||
|
No, libreria no, solamente seleccionar determinadas fechas y que en la aplicacion en un textview se muestre el contenido de esas fechas.
__________________
|
|
#4
|
||||
|
||||
|
Pues en el onCreate u onCreateView de la activity o fragment donde se encuentre el TextView, haces: Código:
TextView txFechas = (TextView) findviewById(R.id.txFecha);
String fecha;
Date d = new Date();
fecha=new SimpleDateFormat("dd-MM-yyyy").format(d);
//Después obtienes la fecha que quieras con un Date, y actualizas el contenido del textview, ya sea con la fecha, o con lo que tú quieras según el día:
if(fecha.equals("13/03/2015"))
{
String texto = "Fiestón que es viernes!!"
}
txFechas.setText(texto);
Espero que te sirva!
__________________
Apple
Última edición por DaSound Día 13/03/15 a las 12:02:27. |
|
#5
|
||||
|
||||
|
Gracias DaSound, eso es exactamente lo que quiero hacer, pero no me funciona, no me muestra los textos
__________________
|
|
#6
|
||||
|
||||
|
Código:
@override public void onResume(){ super.onResume(); //Código de usuario. } Métele todo el código ahí y vuelve a probar.
__________________
Apple
|
|
#7
|
||||
|
||||
|
Si, he probado en onCreate y en onResume y nada.
__________________
|
|
#8
|
||||
|
||||
|
Al fin he dado con la solucion, funciona correctamente y bastante sencillo
Código:
TextView txt1 = (TextView) findViewById(R.id.infotxt);
Calendar today = Calendar.getInstance();
int dayOfMonth = today.get(Calendar.DAY_OF_MONTH);
int month = today.get(Calendar.MONTH);
if (month == Calendar.MARCH && dayOfMonth == 19) {
txt1.setText("Texto a mostrar");
}
__________________
|
| Gracias de parte de: | ||
|
#9
|
||||
|
||||
|
Volviendo al tema del calendario, hay manera de hacer lo mismo pero con un rango de fechas? por ejemplo del 19 al 25 de marzo muestre un texto, del 10 al 20 otro, etc
este es el codigo que muestra una fecha determinada if (month == Calendar.MARCH && dayOfMonth == 19) { <-- aqui como poner el rango? txt1.setText("Texto a mostrar"); }
__________________
|
| Gracias de parte de: | ||
|
#10
|
||||
|
||||
|
Código:
if (month == Calendar.MARCH && dayOfMonth >= 19 && dayOfMonth <= 25) {
txt1.setText("Texto a mostrar");
}
Código:
if ((month == Calendar.MARCH && dayOfMonth >= 19) || (month == Calendar.APRIL && dayOfMonth <= 5)) {
txt1.setText("Texto a mostrar");
}
Y ya por completar, aunque es trivial, si fuera del 19 de marzo al 5 de mayo tendrías que considerar abril entero también. Aquí ya he quitado los paréntesis sobrantes (& tiene preferencia sobre |, da igual ponerlos que no) Código:
if (month == Calendar.MARCH && dayOfMonth >= 19 || month == Calendar.APRIL || month == Calendar.MAY && dayOfMonth <= 5) {
txt1.setText("Texto a mostrar");
}
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Última edición por mocelet Día 20/03/15 a las 12:45:19. |
|
#12
|
||||
|
||||
|
Gracias mocelet, crack...probado y funcionando perfecto, justo lo que necesitaba
__________________
|
|
#13
|
||||
|
||||
|
Volviendo al post de las fechas, estoy intentando mostrar una notificacion en la barra de estado en determinadas fechas a una hora especifica, tengo la notificacion creada y si la lanzo desde un boton me funciona, pero como puedo hacer para que se lance sin abrir la aplicacion en una fecha del mes a una hora especifica?
He probado con "Calendar.HOUR_OF_DAY" y "Calendar.MINUTE" , pero nada .
__________________
|
|
#14
|
||||
|
||||
|
Tienes que usar el AlarmManager para programar un evento en cierto momento
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
| Gracias de parte de: | ||
|
#15
|
||||
|
||||
|
Con AlarmManager no hace falta tener la aplicacion abierta no?...o si?
|
|
#16
|
||||
|
||||
|
No, está hecho para eso, por si quieres ejecutar código en un momento dado aunque tu app no esté ejecutándose.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#17
|
||||
|
||||
|
@mocelet
si quisiera mostrar una imagen en lugar de un textview, como sería? Segunda: Sabes de algun tutorial para las notificaciones con el AlarmManager? saludos |
|
#18
|
||||
|
||||
|
Pues igual pero con el método setImageResource del ImageView que quieras cambiar. Dentro del if puedes hacer lo que quieras...
La documentación de Android en general es bastante buena, y las APIs suelen tener ejemplos. Seguro que en google te salen un montón de tutoriales más.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
| Gracias de parte de: | ||
|
#19
|
||||
|
||||
|
Volviendo al tema del calendario, hay manera de ir actualizando un progressbar de una fecha a otra?, en ves de actualizarlo por ejemplo manualmente con "progress.setProgress(25);" que se actualice dentro de un rango de meses o dias?.
Por ejemplo del 19 e enero al 13 de diciembre, que se vaya actualizando la barra de progreso. Cita:if ((month == Calendar.JANUARY && dayOfMonth >= 19) || (month == Calendar.DECEMBER && dayOfMonth <= 13)) {
// aqui actualizar el porcentaje del progressbar segun avancen las fechas } ![]()
__________________
|
|
|
|
#20
|
||||
|
||||
|
Tendrás que contar los días entre el principio y el final, y eso se lo pasas al progress.setMax
Y tendrás que contar los días que han pasado desde la fecha inicial, y eso se lo pasas al progress.setProgress Aunque supongo que eso ya lo sabías Lo divertido es contarlas teniendo en cuenta que está febrero por ahí que varía su duración, lo mejor es usar la propia clase Calendar o una biblioteca que facilite la vida como "Joda time" (http://www.joda.org/joda-time) que ya tiene un método que se llama daysBetween
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
![]() |
Estás aquí
|
||||||
|
||||||