Ver la Versión Completa : [ CONSULTA ] Mostrar texto en determinadas fechas del calendario.
kaiser75
12/03/15, 22:59:17
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?.
kriogeN
12/03/15, 23:50:33
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.
kaiser75
13/03/15, 10:42:53
No, libreria no, solamente seleccionar determinadas fechas y que en la aplicacion en un textview se muestre el contenido de esas fechas.
DaSound
13/03/15, 11:43:19
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?.
Cada vez que arranque la aplicación quieres que ese TextView muestre un contenido distinto no?
Pues en el onCreate u onCreateView de la activity o fragment donde se encuentre el TextView, haces:
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);
Si actualizar el campo te da problemas, sobre todo en los fragments, haz todo esto en el onResume().
Espero que te sirva!
kaiser75
13/03/15, 16:41:44
Gracias DaSound, eso es exactamente lo que quiero hacer, pero no me funciona, no me muestra los textos
DaSound
13/03/15, 20:13:45
Gracias DaSound, eso es exactamente lo que quiero hacer, pero no me funciona, no me muestra los textos
Metiste el código en el onResume()? Hay veces que directamente en el onCreateView no refresca. Si no tuvieras el onResume incluido, inclúyelo a mano, con este código:
override
public void onResume(){
super.onResume();
//Código de usuario.
}
Métele todo el código ahí y vuelve a probar.
kaiser75
14/03/15, 10:57:08
Si, he probado en onCreate y en onResume y nada.
kaiser75
18/03/15, 19:26:58
Al fin he dado con la solucion, funciona correctamente y bastante sencillo ;-)
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");
}
kaiser75
20/03/15, 11:42:28
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");
}
mocelet
20/03/15, 12:35:46
if (month == Calendar.MARCH && dayOfMonth >= 19 && dayOfMonth <= 25) {
txt1.setText("Texto a mostrar");
}
Y si las dos fechas se refieren a meses distintos consecutivos, por ejemplo del 19 de marzo al 5 de abril...
if ((month == Calendar.MARCH && dayOfMonth >= 19) || (month == Calendar.APRIL && dayOfMonth <= 5)) {
txt1.setText("Texto a mostrar");
}
He puesto paréntesis de más para que quede más clara la condición
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)
if (month == Calendar.MARCH && dayOfMonth >= 19 || month == Calendar.APRIL || month == Calendar.MAY && dayOfMonth <= 5) {
txt1.setText("Texto a mostrar");
}
gonza28
21/03/15, 11:07:38
Dios me vino guiando hasta este post:silbando:
juesto necesito lo mismo y a probar. se agradece.
kaiser75
21/03/15, 11:44:48
Gracias mocelet, crack...probado y funcionando perfecto, justo lo que necesitaba :ok:
kaiser75
25/03/15, 19:20:33
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 :rolleyes:.
mocelet
25/03/15, 19:41:24
Tienes que usar el AlarmManager para programar un evento en cierto momento
kaiser75
25/03/15, 20:14:03
Con AlarmManager no hace falta tener la aplicacion abierta no?...o si?
mocelet
25/03/15, 20:39:06
No, está hecho para eso, por si quieres ejecutar código en un momento dado aunque tu app no esté ejecutándose.
gonza28
27/03/15, 20:56:07
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
mocelet
27/03/15, 22:25:11
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.
kaiser75
19/01/16, 12:51:13
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.
if ((month == Calendar.JANUARY && dayOfMonth >= 19) || (month == Calendar.DECEMBER && dayOfMonth <= 13)) {
// aqui actualizar el porcentaje del progressbar segun avancen las fechas
}
mocelet
19/01/16, 14:40:18
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 xD 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
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.