|
||
|
![]() |
![]() |
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
|
||||
|
||||
Uso de Notificaciones
Hola gente, de nuevo acudo a vosotros porque según se va complicando más la cosa con el curso que estoy haciendo, más perdido estoy jeje.
El caso es que debo hacer una aplicación de la siguiente manera: Hay cuatro EditText y un botón que al pulsarlo debe pasar: 1 - Si los cuatro campos están vacíos, al pulsar el botón debe lanzarse un TOAST que diga "Debe rellenar los 4 campos". Por lo poco que se, habrá que hacer algo con un IF pero sinceramente, no tengo mucha idea de usarlo. 2 - Si hay algún campo vacío, salta un DIALOG que nos dirá si queremos seguir adelante o cancelar y volver. 3 - En caso de que pulse ACEPTAR o todos los campos estén rellenos, saltará a la barra de estado una notificación que diga "Se ha calculado correctamente". No tengo que hacer nada de cálculos, sólo aplicar las notificaciones pero ya os digo que no tengo ni idea. Ya os digo que yo creo que habrá que usar IF pero es que no se bien como se hace esto. A ver si alguien me puede guiar un poco porque ando demasiado perdido y no encuentro ayuda ni se que hacer jeje. Siento dar tanta pena colegas. Salu2!! |
|
#2
|
||||
|
||||
public void onClick(View v) {
EditText editText1 = (EditText) findViewById(R.id.editText1); campo1 = editText1.getText().toString(); EditText editText2 = (EditText) findViewById(R.id.editText2); campo2 = editText2.getText().toString(); EditText editText3 = (EditText) findViewById(R.id.editText3); campo3 = editText3.getText().toString(); EditText editText4 = (EditText) findViewById(R.id.editText4); campo4 = editText4.getText().toString(); if (campo1.matches(""))if (campo2.matches(""))if (campo3.matches(""))if (campo4.matches("")) { Toast.makeText(getApplicationContext(), "Debe rellenar los 4 campos", Toast.LENGTH_SHORT).show(); return; } }}); } Con este código he resuelto el primer apartado pero ahora se me plantea la siguiente duda: Para hacer la segunda parte, ¿Se debe meter dentro de este mismo apartado o ya habría que tratarlo como una nueva pulsación del botón? Muchas gracias amigos. Salu2!! |
#3
|
||||
|
||||
bueno, esta vez te echo una mano, pero como no te lo curres no vas a pasar el examen... jejejeje
Código:
public class PortadaActivity extends Activity { // guardamos el Context de la app private Context contexto = this; // definimos un nombre al dialog private static final int FALTAN_DATOS=1; // definidos un id para la notificacion private static final int NOTIF_ALERTA_ID = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_portada); // referenciamos los views final EditText et_1 = (EditText) findViewById(R.id.et_1); final EditText et_2 = (EditText) findViewById(R.id.et_2); final EditText et_3 = (EditText) findViewById(R.id.et_3); final EditText et_4 = (EditText) findViewById(R.id.et_4); Button bt_validar = (Button) findViewById(R.id.bt_validar); // cuando se pulsa el boton bt_validar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // verifica si hay algo en los 4 editText si lo hay suma 1 a la variable cantidad int cantidad = 0; if (!et_1.getText().toString().equals("")){ cantidad++; } if (!et_2.getText().toString().equals("")){ cantidad++; } if (!et_3.getText().toString().equals("")){ cantidad++; } if (!et_4.getText().toString().equals("")){ cantidad++; } // verificamos el valor de la variable cantidad if (cantidad==0){ Toast.makeText(getApplicationContext(), "Debe rellenar los 4 campos", Toast.LENGTH_SHORT).show(); } else if (cantidad < 4){ //si es menor que 4 muestra el dialog showDialog(FALTAN_DATOS); } else if (cantidad == 4){ //si es igual a 4 ejecuta la notificación llamando a la funcion notificar que diseñamos notificar(); } } }); } // este metodo es el llamado de serie para mostrarlos dialog, hay que mandarle que dialog se ejecuta, // por ello creamos la variable FALTAN_DATOS @Override protected Dialog onCreateDialog(int id) { switch (id) { case FALTAN_DATOS: // utilizamos el dialog Alert que viene de serie en android por que tiene lo que necesitamos. AlertDialog.Builder builder2 = new AlertDialog.Builder(this); builder2.setTitle("Faltan datos!!"); builder2.setIcon(android.R.drawable.btn_star); builder2.setMessage("Aun asi quiere continuar?"); builder2.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // si le da a continuar llamaremos al metodo que nos creamos para notificar. notificar(); return; } }); builder2.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Cancelado", Toast.LENGTH_SHORT).show(); return; } }); return builder2.create(); } return null; } // este es el metodo para ejecutar la notificacion. private void notificar(){ //Obtenemos una referencia al servicio de notificaciones String ns = Context.NOTIFICATION_SERVICE; NotificationManager notManager = (NotificationManager) getSystemService(ns); //Configuramos la notificación int icono = android.R.drawable.stat_sys_warning; CharSequence textoEstado = "Notificación"; long hora = System.currentTimeMillis(); Notification notif = new Notification(icono, textoEstado, hora); //Configuramos el Intent Context contexto = getApplicationContext(); CharSequence titulo = "Notificación app"; CharSequence descripcion = "Se ha calculado correctamente"; Intent notIntent = new Intent(contexto, PortadaActivity.class); PendingIntent contIntent = PendingIntent.getActivity(contexto, 0, notIntent, 0); notif.setLatestEventInfo(contexto, titulo, descripcion, contIntent); //AutoCancel: cuando se pulsa la notificaión ésta desaparece notif.flags |= Notification.FLAG_AUTO_CANCEL; //Añadir sonido, vibración y luces notif.defaults |= Notification.DEFAULT_SOUND; //notif.defaults |= Notification.DEFAULT_VIBRATE; //notif.defaults |= Notification.DEFAULT_LIGHTS; //Enviar notificación notManager.notify(NOTIF_ALERTA_ID, notif); } Suerte ;) Última edición por Celtium Día 22/11/12 a las 22:30:51. |
#4
|
||||
|
||||
Madre mía, no pedía esto, sólo un poco de ayuda u orientación jeje. Voy a intentar comprenderlo porque no es nada fácil pero debido a mi nivel, si presento algo así de repente van a flipar un poco jeje.
De todas maneras, viendo mi nivel, tendré que usar esto porque por ahora no doy para tanto jeje. MIL GRACIAS POR EL CURRO COMPAÑERO!!!!! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Salu2!! |
#5
|
||||
|
||||
Si estas usando eclipse, lo mejor es que te ayudes de las cosas que te va diciendo cuando pulsas control+espacio (si no sabias que existia ese atajo es que necesitas aprender a usar eclipse, que alguna de las opciones que tiene por ahi te pueden ayudar para aprobar los examenes con mas facilidad)
Bueno volviendo a lo que decia, cuando tu estabas poniendo el IF para ver si estaban vacios los editText podias haber hecho campo1. y aqui haber pulsado el ctrl+espacio y te muestra todos los metodos disponibles, y la descripcion de lo que hace cada uno a la derecha, aunque no hay explicacion para todo, si para la gran mayoria Y el codigo de Celtium esta genial, tanto este como el del otro post, y mas que nada porque esta todo bien documentado y se explica todo a la perfeccion, si haces tu eso en tus programas, cuando los mires en un futuro mucho que mejor, yo todavia comento muy poquito las veces y despues de leer los codigos de Celtium te das cuenta de que sirven para mucho los comentarios ![]()
__________________
![]() |
#6
|
||||
|
||||
Nunca te acostarás sin aprender una cosa nueva jeje.
La verdad es que el curso está muy bien pero si precisamente se supone que es a nivel básico, ahora que va nos vamos metiendo en materia, si se echan en faltan muchas explicaciones de cosas básicas para haber entendido todo mucho mejor. Pero bueno, a ver si lo termino y ya libremente puedo trastear e ir preguntando para enriquecerme aún más porque la cosa me está gustando bastante. Muchas gracias a todos por vuestra gran ayuda!!!! Salu2!! |
#7
|
||||
|
||||
Hola,
set92, tienes toda la razón el truco de control+espacio esta muy bien, te permite ahórrate mucho tiempo en buscar como se escribían las cosas y ademas te da muchas de posibles opciones. No todas pero si las mas comunes ademas de las variables propias. comentar... todo el mundo dice que es bueno comentar, que hay que comentar el código. Pero es un lio y hace que el código quede "sucio" y muy largo. Si trabajas con más gente es muy bueno documentar todo, facilitas a los demás leer tu código, cada uno programa a su manera y algunos lo hacen muy raro jejeje, mejor ayudar a los demás a que te comprendan. Si es para ti, vas documentando lo que te cuesta hacer, las funciones complicadas que no ves rápidamente. Después de un mes algo que te costo hacer no lo entiendes de un vistazo entonces documentalo. Con la practica dejaras de documentar muchas cosas por que al leer el código lo entenderás, sera lo mismo que leer la documentación. (pero esto yo no lo dije, jejeje, hay que documentar todo) Tyulio me alegro que te valiera. Ya estoy a la espera del siguiente tema ![]() Suerte ;) |