Está en la página 1de 4
30/6/2015 Creacióndenuevasactividades­DiplomadeEspecializaciónendesarrollodeaplicacionesparaAndroid D.E. Android
30/6/2015
Creacióndenuevasactividades­DiplomadeEspecializaciónendesarrollodeaplicacionesparaAndroid
D.E. Android
MOOC Introducción
Fundamentos
Avanzado
Glass/Wearable
Libros Android
Inicio
Tutoriales: Android Fundamentos
Unidad 3. Actividades e intenciones
Creación de nuevas actividades

Creación de nuevas actividades

ElconceptodeactividadenAndroidrepresentaunaunidaddeinteracciónconelusuario,esloque

coloquialmentellamamosunapantalladelaaplicación.Unaaplicaciónsueleestarformadaporunaseriede

actividades,deformaqueelusuariopuedeirnavegandoentreactividades.Enconcreto,Androidsueledisponer

deunbotón(físicooenpantalla)quenospermitevolveralaactividadanterior,esdecirlaactividadqueha

creadoalaactividadactual.

creadoalaactividadactual. Inscripción WEB de mmoviles mmoviles@upv.es
creadoalaactividadactual. Inscripción WEB de mmoviles mmoviles@upv.es
Inscripción WEB de mmoviles mmoviles@upv.es MásterAplic.Móviles video [ Tutorial ] Actividades en

MásterAplic.Móviles

video[ Tutorial ] Actividades en Android [Tutorial] Actividades en Android

DE­Android

TodaActividadhadetenerunavistaasociada,queseráutilizadacomointerfazdeusuario.Estavistasueleser

detipoLayoutaunquenoesimprescindible,comoseveráenelsiguienteejemplo.

“ Diploma de Especialista en Desarrollo de Aplicaciones

Diploma de Especialista en Desarrollo de Aplicaciones para AndroidInscripción Descargate el Dossier

Unaaplicaciónestaráformadaporunconjuntodeactividadesindependientes,esdecirsetratadeclases

independientesquenocompartenvariables,aunquetodastrabajanparaunobjetivocomún.Otroaspecto

importanteesquetodaactividadhadeserunasubclasedeActivity.

Lasaplicacionescreadashastaahoradisponíandeunaúnicaactividad.Estaeracreadaautomáticamenteyse

leasignabalavistadefinidaenres/layout/activity_main.xml.Estaactividaderaarrancadaalcomenzarla

aplicación.Amedidaquenuestraaplicacióncrezcavaaserimprescindiblecrearnuevasactividades.Eneste

apartadodescribiremoscomohacerlo.Esteprocesosepuederesumirencuatropasos:

CreaunnuevoLayoutparalaactividad.

CreaunanuevaclasedescendientedeActivity.EnestaclasetendrásqueindicarqueelLayouta

Activity. EnestaclasetendrásqueindicarqueelLayouta Tutoriales: Java Esencial Tutoriales: Android

Recursosdidácticos

visualizareseldesarrolladoenelpuntoanterior. Paraquenuestraaplicaciónseavisibleseránecesarioactivarladesdeotraactividad. DeformaobligatoriatendremosqueregistrartodanuevaactividadenAndroidManifest.xml Veamosunprimerejemplodecómocrearunanuevaactividad en la aplicación que estamos desarrollando.

Ejerciciopasoapaso:ImplementacióndeunacajaAcercade ImplementacióndeunacajaAcercade

VamosacrearunacajaAcercade…yvisualizarlacuandosepulseelbotónadecuado.

1.Enprimerlugarcreaelficherores/layout/acercade.xml.Paraellopulsaconelbotónderechosobreel

exploradordelproyectoenlacarpetares/layoutyseleccionaNew>LayoutresourcefileenAndroidStudioo

New>AndroidXMLFileenEclipse.IndicaenFileacercade.xml.

2.SeleccionalalengüetadeediciónenXMLycopiaelsiguientecontenido:

<?xml version="1.0" encoding="utf‐8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/TextView01"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Este programa ha sido desarrollado como ejemplo en el curso de Android para </TextView>

3.Creamosahoraunanuevaactividad,queserálaresponsabledevisualizarestavista. Para ello vamos a crear el fichero AcercaDe.java. Pulsa con el botón derecho sobre el nombre del paquete de la

30/6/2015

Creacióndenuevasactividades­DiplomadeEspecializaciónendesarrollodeaplicacionesparaAndroid

aplicación. Selecciona New > Class. En el campo Name introduce AcercaDe y pulsa Finish. Reemplaza el código por:

public class AcercaDe extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.acercade);

}

}

setContentView(R.layout.acercade); } } Nota sobre Java: Pulsa Alt­Intro en Android Studio o

Nota sobre Java: Pulsa Alt­Intro en Android Studio o Ctrl­Shift­O en Eclipse en las dos clases modificadas para que automáticamente se añadan los paquetes que faltan.

4.Pasemosahoraacrearunmétodoenlaactividadprincipalqueseráejecutadocuandoseapulsadoelbotón

Acercade.

public void lanzarAcercaDe(View view){ Intent i = new Intent(this, AcercaDe.class); startActivity(i);

}

5.ParaasociarestemétodoalbotóneditaelLayoutactivity_main.xml.SeleccionaelbotónAcercade…yenla

vistaPropertiesdeEclipsebuscaelatributoonClickeintroduceelvalor lanzarAcercaDe.

6.PasaalaediciónXMLpulsandoenlalengüetaactivity_main.xmlyobservacomo,enlaetiqueta<Button>

correspondiente,sehaañadidoelatributo:

android:onClick="lanzarAcercaDe"

NOTA: En caso de que exista algún recurso alternativo para activity_main.xmlrepite el mismo proceso.

7.EjecutaahoralaaplicaciónypulsaenelbotónAcercade.Observarásqueelresultadonoessatisfactorio

¿Quéhaocurrido?

¿Quéhaocurrido? El problema es que toda actividad que ha de ser lanzada por

El problema es que toda actividad que ha de ser lanzada por una aplicación ha de ser registrada en el fichero AndroidManifest.xml. Para registrar la actividad, abre AndroidManifest.xml. En Eclipse selecciona la lengüeta Application. En Application Nodes pulsa el botón Add… y selecciona Activity. Rellena los campos de la derecha tal y como se muestra a continuación:

campos de la derecha tal y como se muestra a continuación: En Android Studio tendrás que

En Android Studio tendrás que editar el fichero directamente. Añade el siguiente texto dentro de la etiqueta <application …> </ application>:

<activity

android:name=".AcercaDe" android:label="Acerca de

"/>

8.Ejecutadenuevoelprograma.Elresultadohadesersimilaralmostradoacontinuación:

La vista mostrada en el ejemplo anterior no parece muy

La vista mostrada en el ejemplo anterior no parece muy atractiva. Tratemos de mejorarla aplicando un tema. Como vimos en el capítulo anterior, un tema es una colección de estilos que define el aspecto de

30/6/2015

Creacióndenuevasactividades­DiplomadeEspecializaciónendesarrollodeaplicacionesparaAndroid

una activad o aplicación. Puedes utilizar alguno de los temas disponibles en Android o crear el tuyo propio.

9.EnestecasoutilizaremosunodelosdeAndroid.ParaelloabreAndroidManifest.xmly conEclipseselecciona lalengüetaApplication.EnApplicationNodespulsasobre.AcercaDeyaladerechaintroduceenelcampo

Theme:elvalor:@android:style/Theme.Dialog.

10.Siloprefieres,otrabajasconAndroidStudio,oeditadirectamenteelficheroAndroidManifest.xml:

<activity android:name=".AcercaDe" android:label="Acerca de

"

android:theme="@android:style/Theme.Dialog"/>

11.Ejecutadenuevoelprogramayobservacómomejoralaapariencia:

11. Ejecutadenuevoelprogramayobservacómomejoralaapariencia: Ejerciciopasoapaso: Unescuchadordeeventoporcódigo

Ejerciciopasoapaso:Unescuchadordeeventoporcódigo Unescuchadordeeventoporcódigo

ComoacabamosdeverenunlayoutpodemosdefinirelatributoXMLandroid:onClicknospermite indicarunmétodoqueseráejecutadoalhacerclickenunavista.Aestemétodoseleconocecomo escuchadordeevento.Resultamuysencilloyademásestádisponibleencualquierdesdendientedela clase View.Sinembargoestatécnicapresentadosinconvenientes.Enprimerlugar,soloestádisponible apartirdelaversión1.6deAndroid. Ensegundolugar,soloestádisponibleparaeleventoonClick().La claseViewtieneotroseventos(onLongClick(), onFocusChange(), onKey(),…)paralosquenose

handefinidounatributoxml.Entonces,quéhacemossiqueremostrabajarconunaversiónanteriora1.6o

definiruneventodistintodeonClick().Larespuestalaencontrarásesteejercicio:

1.AbrelaclaseMainActivity.javayañadelaslíneasqueaparecensubrayadas:

public class MainActivity extends Activity { private Button bAcercaDe; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bAcercaDe =(Button) findViewById(R.id.Button03); bAcercaDe.setOnClickListener(new OnClickListener() { public void onClick(View view) { lanzarAcercaDe(null);

}

});

}

NOTA: Enelcapítulo5seestudiaráconmásdetallelosescuchadoresdeevento.

Práctica:Elbotónsalir Elbotónsalir

Enellayoutactivity_main.xmlhemosintroducidounbotóncontexto“Salir”. Queremosquecuandosepulseeste botónsecierrelaactividad.Paracerrarunaactividadpuedesllamaralmétodo finish(); Llamar a este método es equivalente a cuando un usuario pulsa la tecla «retorno».

1.Realizaestetrabajoutilizandounescuchadordeeventoporcódigo.

2.Hazloahoraconelatributoxmlandroid:onClick.

3.Verificaqueelresultadoeselmismoenamboscasos.

NOTA: No esconveniente que en tus actividades incluyas un botón para cerrarlas. Un dispositivo Android siempre dispone de la tecla «retorno», que tiene la misma función.

30/6/2015

Creacióndenuevasactividades­DiplomadeEspecializaciónendesarrollodeaplicacionesparaAndroid

Solución: 1. Para resolverlo mediante un escuchador por código, añade en el métoco onCreate() de
Solución:
1.
Para resolverlo mediante un escuchador por código, añade en el métoco onCreate() de la clase
MainActivity el siguiente código:
Button bSalir =(Button) findViewById(R.id.button04);
bSalir.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
finish();
}
});
2.
Para resolverlo con el atributo onClick, añade en MainActivity el método:
public void salir(View view){
finish();
}
Y añade el siguiente atributo al botón “Salir” en el layout activity_main.xml: android:onClick="salir"
Copyright 2011­2015 ­ Jesús Tomás: Creación de nuevas actividades ­ Diploma de Especialización en desarrollo de aplicaciones para Android. Universidad Politécnica de
Valencia