Post on 02-Feb-2016
description
Apps MoacutevilesAndreacutes Gonzaacutelez
ProgramaAndroid
Generalidades y Entorno de Desarrollo Ciclos de Vida Aplicaciones
Activity y Service Intent IntentFilter y BroadcastReceiver SharedPreferences y Recursos Bases de Datos Geolocacioacuten Notificaciones
Android - Historia Android Inc fundada en Octubre 2003
Dispositivos maacutes concientes de sus usuarios Adquirida por Google en Agosto 2005 Presentacioacuten de la OHA en Noviembre 2007 Expansioacuten de la OHA en Diciembre 2008
Android - Historia
Android - Historia Versiones
Beta - Noviembre 2005 1 - Septiembre 2008 11 - Febrero 2009 15 (Cupcake) - Abril 2009 16 (Donut) - Septiembre 2009 20 21 (Eclair) - Octubre 2009 Enero 2010 22X (Froyo) - Mayo 2010 23X (Gingerbread) - Diciembre 2010 3X (Honeycomb) - Febrero 2011 4X (Icecream Sandwich) - Mayo 2011
Android - Evolucioacuten
Android 1 Cupcake Donut
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
ProgramaAndroid
Generalidades y Entorno de Desarrollo Ciclos de Vida Aplicaciones
Activity y Service Intent IntentFilter y BroadcastReceiver SharedPreferences y Recursos Bases de Datos Geolocacioacuten Notificaciones
Android - Historia Android Inc fundada en Octubre 2003
Dispositivos maacutes concientes de sus usuarios Adquirida por Google en Agosto 2005 Presentacioacuten de la OHA en Noviembre 2007 Expansioacuten de la OHA en Diciembre 2008
Android - Historia
Android - Historia Versiones
Beta - Noviembre 2005 1 - Septiembre 2008 11 - Febrero 2009 15 (Cupcake) - Abril 2009 16 (Donut) - Septiembre 2009 20 21 (Eclair) - Octubre 2009 Enero 2010 22X (Froyo) - Mayo 2010 23X (Gingerbread) - Diciembre 2010 3X (Honeycomb) - Febrero 2011 4X (Icecream Sandwich) - Mayo 2011
Android - Evolucioacuten
Android 1 Cupcake Donut
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Historia Android Inc fundada en Octubre 2003
Dispositivos maacutes concientes de sus usuarios Adquirida por Google en Agosto 2005 Presentacioacuten de la OHA en Noviembre 2007 Expansioacuten de la OHA en Diciembre 2008
Android - Historia
Android - Historia Versiones
Beta - Noviembre 2005 1 - Septiembre 2008 11 - Febrero 2009 15 (Cupcake) - Abril 2009 16 (Donut) - Septiembre 2009 20 21 (Eclair) - Octubre 2009 Enero 2010 22X (Froyo) - Mayo 2010 23X (Gingerbread) - Diciembre 2010 3X (Honeycomb) - Febrero 2011 4X (Icecream Sandwich) - Mayo 2011
Android - Evolucioacuten
Android 1 Cupcake Donut
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Historia
Android - Historia Versiones
Beta - Noviembre 2005 1 - Septiembre 2008 11 - Febrero 2009 15 (Cupcake) - Abril 2009 16 (Donut) - Septiembre 2009 20 21 (Eclair) - Octubre 2009 Enero 2010 22X (Froyo) - Mayo 2010 23X (Gingerbread) - Diciembre 2010 3X (Honeycomb) - Febrero 2011 4X (Icecream Sandwich) - Mayo 2011
Android - Evolucioacuten
Android 1 Cupcake Donut
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Historia Versiones
Beta - Noviembre 2005 1 - Septiembre 2008 11 - Febrero 2009 15 (Cupcake) - Abril 2009 16 (Donut) - Septiembre 2009 20 21 (Eclair) - Octubre 2009 Enero 2010 22X (Froyo) - Mayo 2010 23X (Gingerbread) - Diciembre 2010 3X (Honeycomb) - Febrero 2011 4X (Icecream Sandwich) - Mayo 2011
Android - Evolucioacuten
Android 1 Cupcake Donut
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Evolucioacuten
Android 1 Cupcake Donut
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Evolucioacuten
Eclair FroYo Gingerbread
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Evolucioacuten
Honeycomb Icream Sandwich
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Arquitectura
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - IDE Eclipse Maquina Virtual Logcat Control del Emulador
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - IDEEclipse
Instalador Descargar
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - IDEEclipse
Acelerar el proceso de escritura de coacutedigo
Permite autocompletar
Sentildeala errores de sintaxis
Permite agregar archivos (imaacutegenes o de codigo fuente) con pegarlos en el proyecto
Al usar el menuacute Window -gt Show View podemos acceder a la ventana de Logcat y del Control del emulador
Despliega ventanas con las propiedades de los objetos seleccionados al trabajar en layouts
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LogcatLogcat Despliega mensajes de depuracioacuten de las
aplicaciones en ejecucioacuten Permite ubicar el tipo de error junto con el
archivo asociado y la liacutenea que general el problema
Posee filtros para solo mostrar los mensajes que nos interesan dependiendo del nivel de verbosidad
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LogcatLogcat
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Control de EmuladorControl del Emulador Simula diferentes cambios en el estado del
dispositivo como Llamadas entrantes Cambios de ubicacioacute Llegada de SMS Rotacioacuten de pantalla
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Control de EmuladorControl del Emulador
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onResume() establecemos valores iniciales
de la aplicacioacuten y revisamos si debemos cargar o no datos
onPause() guardamos automaacuteticamente las acciones del usuario
onDestroy() liberamos variables o listeners y cerramos cualquier DB abierta
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Ciclos de Vida
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Ciclos de VidaCiclo de Vida onCreate() declaramos variables iniciamos
procesos que pueden demorarse onStartCommand() en base al intent
recibido podemos establecer que procesos realizar en el servicio
stopSelf() ya que no existe un evento onStop() podemos hacer que el servicio se detenga a si mismo y ahiacute realizar la limpieza necesaria
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - AplicacionesDirectorios Importantes
src [package]
Archivos Java (Actividades y Servicios) res
drawable - [l m h]dpi Archivos imaacutegenes (Fondos Botones Etc)
layout Archivos Xml de Layouts (Layouts y Menus)
values Archivos Xml de valores usados en la app stringsxml
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - AplicacionesCoacutedigo fuente y layoutspackage clipciisatest
import androidappActivityimport androidosBundle
public class MyActivity extends Activity Called when the activity is first created Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain )
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Coacutedigo FuenteCoacutedigo fuente Ubicado en ProyectosrcPackage Un archivo java por cada clase Contiene los archivos de
Actividades Servicios Listeners Libreriacuteas propias Clases propias que use la app en general
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsLayouts en general Despliegan y ordenan contenido Pueden contener otros layouts Permiten establecer un color de fondo una
imaacutegen de fondo alto y ancho del layout Requieren de un ScrollView para mostrar
maacutes contenido del que es visible en la pantalla
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsLinearLayout Tiene 2 orientaciones
Vertical Ubica los hijos uno a uno abajo del anterior
Horizontal Ubica los hijos uno al lado del anterior
Por defecto usan todo el ancho pero no todo el alto de la pantalla
Pueden indicar una justificacioacuten o gravedad bajo la cual se ordenaraacuten los elementos contenidos
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Layouts
public class MyActivity extends Activity Override public void onCreate( Bundle savedInstanceState ) superonCreate( savedInstanceState ) setContentView( Rlayoutmain ) LinearLayout ll ll = (LinearLayout) findViewById( Ridmain ) TextView t = new TextView( this ) tsetText( HelloWorld ) lladdView( t )
LinearLayout
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsRelativeLayout Ordena los items contenidos en relacioacuten a
los bordes del layout o a otros elementos existentes
El cambio de id o la remocioacuten de un elemento puede generar cambios en el orden del contenido mostrado
Se adapta a las diferentes orientaciones de pantalla pero algunos elementos pueden quedar fuera de ella
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Layouts
RelativeLayout rlrl = (RelativeLayout) findViewById( Ridmain )TextView t = new TextView( this )RelativeLayoutLayoutParams pp = new RelativeLayoutLayoutParams( LayoutParamsWRAP_CONTENT LayoutParamsWRAP_CONTENT )paddRulet( RelativeLayoutALIGN_PARENT_LEFT RelativeLayoutTRUE )tsetText( HelloWorld )rladdView( t p )
RelativeLayout
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsGridLayout Distribuye el espacio en partes N casilleros Dichos casilleros se ordenan en filas y
columnas Complejo de utilizar de manera
programaacutetica Puede ser reemplazado por otros tipos de
layout
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsTableLayout Ordenan el contenido en filas y columnas Similar a usar una combinacion de
LinearLayout o GridLayout Complejo de usar de manera programaacutetica
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsFrameLayout Todos los elementos agregados son
ubicados en la esquina superior izquierda de la pantalla
Puede indicarse un margen para cada objeto a fin de acomodarlo donde sea necesario
Los objetos son puestos uno sobre del otro vistos como objetos planos o como capas en una imaacutegen
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - LayoutsScrollView Contiene un LinearLayout Permite que el contenido ubicado fuera de la
pantalla pueda ser visto Debe ser declarado como horizontal o
vertical No se utiliza directamente sino que los hijos
se agregan al layout lineal nombrado al principio
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - AndroidManifestAndroidManifestxml Contiene informacioacuten primordial de la app
requerida para que la misma funcione apropiadamente
Declara permisos versiones nodos filtros y listeners
Establece temas de colores y estilos de nuestra app
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - AndroidManifestAndroidManifestxml
Manifest Package Name Extras
Application Label Icon Application Nodes
Permissions Dependiente de la APP
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - AndroidManifest
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - IntentsIntents
Describen acciones o situaciones a las cuales responde nuestra aplicacioacuten
Permiten iniciar componentes (Acitividades y Servicios)
Sirven para enviar paraacutemetros y variables Su constructor puede utilizar un contexto o una linea
descriptiva de la accioacuten
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Intents
Intent intent = new Intent( identificadordeaccion )Opcion 1Intent intent = new Intent( Context context Class Claseclass )Opcion 2intentputExtra( foo foo ) foo es cualquier variable o clase parcelablestartActivity( intent )Para actividadesstartService( intent )Para serviciossendBroadcast( intent )Para filtros interesados en la accioacuten
Bundle bundle = getIntent()getExtras()En un ActivityPara el caso del servicio usamos el intent que llega en onStartCommandFoo foo = bundlegetFoo( foo )Operaciones sobre foo
Intents Iniciar actividades o servicios con
paraacutemetros Uso en Origen
Uso en Destino
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - IntentFilterIntentFilter y BroadcastReceiver
Indicar que Actividad o Servicio debe ejecutarse dadas ciertas condiciones externasinternas de la app
Usoprivate BroadcastReceiver broadcastReceiver = new BroadcastReceiver() Overridepublic void onReceive( Context context Intent intent )
Acciones a realizar en caso de recibir un Broadcast
IntentFilter intentFilter = new IntentFilter( identificadordeaccion )Opcion 1intentFilter = addAction( identificadordeaccion )Opcion 2 filtro existenteregisterReceiver( broadcastReceiver intentFilter )
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - SharedPreferencesSharedPreferences
Permiten almacenar informacioacuten de manera no volaacutetil
Elementos que se pueden guardar boolean int long float string
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - SharedPreferencesSharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences( archivo MODE_PRIVATE )Los modos son MODE_PRIVATE MODE_WORLD_READABLEMODE_WORLD_WRITABLE y MODE_MULTI_PROCESS
SharedPreferencesEditor editor = sharedPreferencesedit()AgregarModificar una variableeditorputBoolean( foo true )editorcommit()
boolean sharedPreferences = sharedPreferencesgetBoolean( foo false )El segundo parametro false para este caso es el valor por defecto en caso de no hallarse lavariable
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Bases de DatosBases de datos
Corren en SQLite No permiten triggers o constraints Ocupan una clase proxy No se encargan de la proteccioacuten de datos No asegura consistencia
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Bases de DatosCrear clase extendiendo DBHelper
Constructor debe incluir super(context DATABASE_NAME null DATABASE_VERSION)
SobreescribironCreate(androiddatabasesqliteSQLiteDatabase)
Hacer consultas conrawQuery(javalangString javalangString[])
Procesar retornos concursormoveToFirst() y cursormoveToNext()
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Bases de DatosDBHelper
public class DictionaryOpenHelper extends SQLiteOpenHelper
private static final int DATABASE_VERSION = 1private static final String DICTIONARY_TABLE_NAME = diccionarioprivate static final String KEY_WORD = palabraprivate static final String KEY_DEFINITION = definicionprivate static final String DICTIONARY_TABLE_CREATE = CREATE TABLE + DICTIONARY_TABLE_NAME + ( + KEY_WORD + TEXT + KEY_DEFINITION + TEXT)
DictionaryOpenHelper(Context context) super(context DATABASE_NAME null DATABASE_VERSION)
Override public void onCreate(SQLiteDatabase db) dbexecSQL(DICTIONARY_TABLE_CREATE)
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - GeolocacioacutenAPI Key
Obtener API Key Modificar XML del mapview
Modificar AndroidManifestxml
ltcomgoogleandroidmapsMapView androidlayout_width=fill_parent androidlayout_height=fill_parent androidenabled=true androidclickable=true androidapiKey=ApiKey gt
ltapplication androidname=App gtltuses-library androidname=comgoogleandroidmaps gt
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - GeolocacioacutenMapActivitypublic class MyMapView extends MapActivity
Overrideprotected boolean isRouteDisplayed()
return falseLinearLayout linearLayoutMapView mapViewprotected boolean onCreate( Bundle savedInstanceState)
superonCreate( savedInstanceState )mapView = (MapView) findViewById( Ridmapview )mapViewsetBuiltInZoomControls( true )mapOverlays = mapViewgetOverlays()drawable = thisgetResources()getDrawable( Rdrawableandroidmarker )itemizedoverlay = new MyItemizedOverlay( drawable )GeoPoint point = new GeoPoint(19240000-99120000)OverlayItem overlayitem = new OverlayItem(point )itemizedoverlayaddOverlay( overlayitem )mapOverlaysadd( itemizedoverlay )return false
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - GeolocacioacutenMyItemizedOverlay
public class MyItemizedOverlay extends ImetizedOverlay private ArrayListltOverlayItemgt mOverlays = new ArrayListltOverlayItemgt()
HelloItemizedOverlay() super( boundCenterBottom( defaultMarker ) )
public void addOverlay( OverlayItem overlay )
mOverlaysadd(overlay)populate()
Overrideprotected OverlayItem createItem( int i )
return mOverlaysget( i )Overridepublic int size()
return mOverlayssize()
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - GeolocacioacutenMyLocationListener
public class MyLocationListener implements LocationListener public void onProviderDisabled()
Overridepublic void onLocationChanged( Location location )
Overridepublic void onProviderDisabled( String provider )
Overridepublic void onProviderEnabled( String provider )
Overridepublic void onStatusChanged( String provider int status Bundle extras)
Android - Notificaciones
Android - Notificaciones