lunes, 29 de abril de 2013

Android Manifest (IV) - etiqueta activity

En la parte III del estudio del archivo manifest.xml, vimos la etiqueta 〈application〉 y terminamos referenciando a la ayuda para ampliar información.

Pues bien, en la ayuda pudimos ver que la etiqueta 〈application〉 podía contener las siguientes subetiquetas: 
  • 〈activity〉
  • activity-alias
  • 〈service〉
  • 〈receiver〉
  • 〈uses-library〉     
  En esta entrada nos ocuparemos de la

Etiqueta 〈activity〉

Cuando habíamos creado nuestro proyecto, si no le hemos dado otro nombre, se nos habrá creado una actividad principal llamada MainActivity.

Desde el mismo manifest.xml, en la pestaña Application, podemos configurar sus propiedades:



Estas modificaciones se trasladarán al fichero '.xml', dentro de la etiqueta <Activity>:


android:name especifica el nombre de la actividad. En el ejemplo ponemos todo el nombre completo, aunque podíamos haber puesto sólo .MainActivity ya que tenemos el nombre del package definido más como atributo del elemento manifest.

android:label también lo tenemos definido en la etiqueta Application. Concretamente, el contenido de este atributo aparecerá en la barra de título de la actividad si la tuviera. También se usará en el lanzador de la aplicación si definimos esta actividad como el punto de entrada de nuestra aplicación. En el ejemplo usamos app_name del archivo strings.xml, aunque podíamos haber usado un string puro entre comillas, P.ej: "Mi actividad". Si no lo definimos, se utilizará el label definido en la etiqueta <application>.

android:screenOrientation define la orientación de la aplicación - portrait o landscape (apaisado) -. Si no definimos este atributo, se usará el que el dispositivo tenga predeterminado, incluido el variable en función del acelerómetro. Cuando la pantalla cambia de orientación la actividad se destruye y eso en un juego, no queremos que suceda.


android:configChanges: En Android, el cambio de orientación o la aparición del teclado se considera un cambio de configuración, lo que hace que la pantalla se redibuje para adaptarse a los cambios. En este atributo definimos los eventos que queremos manejar nosotros con el fin de evitar que se destruya la actividad. Los diferentes efectos se separan con la barra vertical o Pipe ( | )

SubEtiqueta 〈intent-filter〉

Podemos ver como la etiqueta activity tiene una subetiqueta llamada <intent-filter>.


En Android no existe un único punto de entrada para nuestra aplicación. Podemos iniciarla a través de múltiples activities o services que pueden ser iniciados a partir de intents específicos que puede enviar el sistema u otra aplicación. Para decir a Android ante qué intent debe reaccionar y cómo, existe el <intent-filter>.

Si los palabros que acabo de utilizar te suenan a chino mandarín, a menos que seas chino pulsa aquí.
  • Con el elemento <action>, estamos indicando que esta activity va a ser un punto de entrada para nuestra aplicación. Sólo puede haber una  activity que reaccione a este intent.
  • Con elemento <category> le decimos a Android que queremos que esta activity sea añadida al lanzador de la aplicación. Pueden haber varias activities que reaccionen a este intent.
De esta manera Android sabe que al ser pulsado el icono de la aplicación, debe iniciar esta activity. 

Si no hubiéramos establecido el <intent-filter>, esta activity sólo se podría llamar desde dentro de la aplicación.

Fijémonos que ambos elementos sólo tienen el atributo name siendo su valor el nombre del intent.

Y hasta aquí esta entrada. Como siempre referenciaros al vídeo original de Jesús Conde, del que estoy tomando estas anotaciones.

jueves, 25 de abril de 2013

Celda parpadeante en Microsoft Excel 2007

La idea de esta entrada es hacer que un rango de celdas de Excel parpadeen, o cambien de color, o aparezcan y desaparezcan los bordes, es decir alternar entre el formato de celda origina y otro.

Determinar el formato de celda alternativo

  1. Seleccionamos el rango de celdas (que ya tienen un formato) a la que queremos alternar el formato.
  2. Luego Formato Condicional 
  3. Después Nueva Regla.


(NOTA: Si pulsas sobre la imagen se puede ampliar)

     4.  En la pantalla que se nos abre seleccionamos:
> Utilice una fórmula que determine las celdas para aplicar formato.
     5.  Escribimos la siguiente fórmula
=RESIDUO(SEGUNDO(AHORA());2)=0
*NOTA: Cómo indica Cristian Fuentealba en los comentarios, si os da un error en el paso 7 probad a usar RESTO en lugar de RESIDUO

     6.  Luego pulsamos el botón Formato.


       7.  Ahora en la pantalla que nos sale escogemos el efecto con el que queramos alternar: una fuente, negrita... nosotros escogeremos un fondo rojo.



      8.   Aceptamos todas las ventanas.

Escribimos la macro

  1. Abrimos MVB pulsando simultáneamente las teclas [ALT] y [F11]
  2. Insertamos un módulo

     3.  Copiamos y pegamos el siguiente código:


Public tiempo As Date
Sub Inicio()
tiempo = Now + TimeSerial(0, 0, 1)
Worksheets(1).Calculate
Application.OnTime tiempo, "Inicio"
End Sub
Sub Fin(): On Error Resume Next
Application.OnTime tiempo, "Inicio", Schedule:=False
End Sub

     4. Para ejecutar escogemos Inicio (1) y le damos al Play (2)


    5.  Si cambiamos a la hoja ya podremos ver nuestra celda parpadeando.


Reinterpretación para Office 2007 de 5aprendices.com