Está en la página 1de 22

UA: Programacin Aplicada a Sistemas de Computo Mvil

M. en C. Roco Elizabeth Pulido Alba


Practica:
Objetivo:
Manejo de Muenus, uso de permiso, y manejo de Datos entre activites.
Descripcin
Para este ejemplo se creara una aplicacin que cambiara de pantallas, enviara informacin de una
a otra, se validara campos, enseara como hacer un Popup con una Activity, poner mensajes de
alerta o notificacin (Toast), abrir la funcin de cmara y navegador de internet y el manejo de
ListView.
Se crearan 7 Activities a parte del principal, donde los activities sern:
1.
2.
3.
4.
5.
6.
7.

Acerca De
Camara
Web
Listado
Datos
Despliegue
Imgenes

Pasos a seguir.
Cmo crear un nuevo proyecto?
1. Vamos a File-New-New project

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
2. Damos un nombre al proyecto

3. Seleccionar una version mimina para compilar y ejecutar

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba

4. Selecciona un tipo de Activity

5. Se le da un nombre al Activity

Una vez finalizado la creacin del proyecto, se muestran las siguientes carpetas

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Como crear los Activities:
En res/layout damos click derecho damos New-Activity-BlankActivity y le damos un nombre.

Nota: Del lado izquierdo podemos ver que se crearon los Activities

Primer paso, realizar la pantalla principal, para esto utilizaremos el Activity creado al principio del
proyecto. Para editar la pantalla (Activity) que fue creada al principio nos direccionamos a la
carpeta res/layout y abrimos el layout de esta.
1. Pondremos un Plain TextView para el nombre y otro para la contrasea (estos son solo
para indicar al usuario los campos que ingresara):

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
2. Poner dos EditText para el nombre y contrasea (usaremos Person name para el nombre y
Password para la contrasea) y dos botones.

En el Activity Acerca De debes poner tu informacin

En Camara poner un ImageView y un boton

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Para el Activity de los Datos

Para el Activity Despliegue

Para el Activity Imgenes


Se colocara priemro un GridLayout y despues 7 imgenes en el orden deseado:

Para agregar las imgenes damos click en el ImageView y seleccionamos la opcion src

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Nota para agregar imgenes propias las tenemos que pegar primero en Drawable en un formato
JPG o PNG y estas deben de estar nombradas por minusculas.

Para el Activity del Listado

Para el de Web

Una vez creadas todas las interfaces graficas, pondremos los menus correspondientes a cada
Activity. Los menus estan en res/menu/menu_nombre de la actividad, aqu es donde se
muestran los menus que contienen nuestros Activities.

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Cmo poner un elemento del menu?
Nos vamos a la Activity deseada, posteriormente creamos un item que identificara al elemento del
menu que deseamos.
<item android:id="@+id/nombre" android:title="Titulo del elemento"
android:orderInCategory="100" android:showAsAction=always/never />
Se le da un id: android:id="@+id/id
Un titulo para que sea el que aparezca: android:title="Acerca de"
Y una accion de mostrar: android:showAsAction= always o never
Always: si se desea ver siempre
Never si solo se vea cuando el usuario ingrese al menu

El Activity Main solo contiene el Acerca De.

Agregamos el siguiente cdigo para tener otra opcin del men en esta actividad, esta opcin
siempre estar visible y se llamara Acerca De
<item android:id="@+id/action_acercade" android:title="Acerca de"
android:orderInCategory="100" android:showAsAction="always" />
Se le da un id: android:id="@+id/action_acercade"
Un titulo para que sea el que aparezca: android:title="Acerca de"
Y una accion de mostrar (en este caso siempre estar disponible):
android:showAsAction="always"
Para los dems Activities utilizaremos Web, Imagen, Camara y Listado (este solo
en algunos Activities). Se agrega el siguiente cdigo.

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Menu Datos

<item android:id="@+id/action_acercade" android:title="Acerca de"


android:orderInCategory="100" android:showAsAction="always" />
<item android:id="@+id/action_web" android:title="Web"
android:orderInCategory="100" android:showAsAction="never" />
<item android:id="@+id/action_imagen" android:title="Imagen"
android:orderInCategory="100" android:showAsAction="never" />
<item android:id="@+id/action_camara" android:title="Camara"
android:orderInCategory="100" android:showAsAction="never" />
En este caso los dems tem, solo se muestran cuando el usuario acceda al men
del Activity, por eso en android:showAsAction="never" ya que esto nos permite que
solo se vea cuando el usuario acceda.
Menu Despliegue

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Menu Listado

Menu Imgenes

Una vez creados todos los menus de los Activities, nos dirigimos a
res/values/strings.xml y aqu declararemos los id de los tem de los menus,
agregaremos el siguiente cdigo:

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba

<string
<string
<string
<string
<string

name="action_acercade">acercade</string>
name="action_camara">camara</string>
name="action_web">web</string>
name="action_imagenes">imagenes</string>
name="action_listado">listado</string>

Donde a cada uno de ellos le damos el nombre que utilizamos en los menus de los
Activities y un nombre referente al Item.

Una vez terminado todo lo de las interfaces graficas, nos vamos a realizar las validaciones,
acciones para pasar informacin, acceder la cmara y al explorador web y las acciones para pasar
de un Activity a otro ya sea con botn o con el men.
Primero vamos al MainActivity o principal. En este validaremos que el nombre que ingrese al
usuario sea el de l o uno en especfico. Para validar esto crearemos un botn que es que validara
esta y pasara a la siguiente ventana la de Datos.

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba

Creamos un objeto Button:


final Button acceso = (Button) findViewById(R.id.btn_acceso);
Luego le asignaremos un escuchador para que cuando este sea presionado realice
una tarea:
acceso.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Creamos un objeto tipo EditText que va hacer el que captura el nombre y una
cadena que contenera el texto ingresado por el usuario y haremos la comparacin.
final EditText nom = (EditText)findViewById(R.id.txt_nombre_main);
String nombre = nom.getText().toString();
if (nombre.compareToIgnoreCase("Alejandro")==0){
Creamos un objeto Intent que es el que realiza la accin del cambio de ventana.
El primer parmetro del constructor es la clase donde esta y el siguiente a donde
pasara.
Intent in_acceso = new Intent(MainActivity.this,Datos.class);
startActivity(in_acceso);
}else{
Realizaremos una notificacin en caso de que el nombre ingresado sea incorrecto,
para esto usamos un Toast, el primero parmetros es para agarrar la pantalla en
que se encuentra la aplicacin, el segundo es el mensaje a mostrar, el tercero es
el tipo de mensaje y finalmente le damos mostrar.
Toast.makeText(getApplicationContext(),"Nombre
invalido",Toast.LENGTH_SHORT).show();
}
Luego creamos un Button para la opcin de cancelar.
final Button cancelar =(Button)findViewById(R.id.btn_cancelar);
cancelar.setOnClickListener(new View.OnClickListener() {

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
@Override
public void onClick(View v) {
Creamos un Toast para dar unn mensaje de que ha seleccionado Cancelar.
Toast.makeText(getApplicationContext(), "Adios, gracias por mi 100!!",
Toast.LENGTH_SHORT).show();
}
});

Para que la parte del menu pueda realizar las acciones ponemos el
siguiente codigo en el mtodo onOptionsItemSelected

int id = item.getItemId();
Un switch para ver que tem ha sido seleccionado, cada caso es del tem que
existe en el men de esa actividad. El cambio de Activity se hace con un Intent.
switch (id){
case R.id.action_acercade:
Intent in_acerca = new Intent(this,Acercade.class);
Toast.makeText(getApplicationContext(), "Item AcercaDe",
Toast.LENGTH_SHORT).show();
startActivity(in_acerca);
break;
}
return super.onOptionsItemSelected(item);

La clase Datos recopialra la informacin tecleada por el usuario (nombre, direccin, telefono,
email y edad).

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba

Para eso utilizamos el siguiente cdigo:


Para cada campo que ingresa el usuario, creamos un objeto tipo EditText que cada uno identificara
al campo que agrega al usuario y haciendo referencia al campo de la interfaz de este Activity. Y
creamos un Button para poder pasar al siguiente Activity, asignndole un evento escuchador
(setOnClickListener) y asi poder enviar la informacin.
final
final
final
final
final

EditText
EditText
EditText
EditText
EditText

nombre_d = (EditText) findViewById(R.id.edt_nombre);


direccion = (EditText) findViewById(R.id.edt_dir);
telefono = (EditText) findViewById(R.id.edt_tel);
email = (EditText) findViewById(R.id.edt_email);
edad = (EditText) findViewById(R.id.edt_edad);

final Button envio = (Button) findViewById(R.id.btn_enviar);


envio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Creamos una variable ya sea tipo String o Integer dependiendo sea el tipo de dato
recopilado.
String nombre = nombre_d.getText().toString();
String dir = direccion.getText().toString();
Integer tel = Integer.parseInt(telefono.getText().toString());
String ema = email.getText().toString();
Integer ed =Integer.parseInt(edad.getText().toString());
Creamos el intent, indicando en que actividad estamos y a cual vamos.
Intent in_envio = new Intent(Datos.this, Despliegue.class);
Toast.makeText(getApplicationContext(),"nombre=
"+nombre,Toast.LENGTH_SHORT).show();
Utilizaremos el mtodo putExtra para agregar informacin, el primer parmetro es
un nombre referente al campo que enviaremos y el siguiente la variable que
representa a este.

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
in_envio.putExtra("Nombre", nombre);
in_envio.putExtra("Direccion", dir);
in_envio.putExtra("telefono", tel);
in_envio.putExtra("email", ema);
in_envio.putExtra("edad", ed);
Por ultimo Iniciamos la actividad.
startActivity(in_envio);

Para las acciones del men se realiza lo mismo que en MainActivity agregando las opciones de
men de esta actividad:

Para el Activity Despliegue que es el que recibe la informacin y la pueda desplegar utilizaremos el
siguiente cdigo:

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba

Creamos un objeto Bundle que es el que recibir la informacin enviada aneriormente por el
Intent del Activity que llamo a esta, y creamos variables que representan a los campos que recibir
este Activity:
Bundle extras = getIntent().getExtras();
Para poder recoger los datos por campo utilizamos el mtodo getString dando como
parmetro el campo dado anteriormente.
String nombre = extras.getString("Nombre");
String direccion = extras.getString("Direccion");
Integer telefono = extras.getInt("telefono");
String email = extras.getString("email");
Integer edad = extras.getInt("edad");
Creamos un TextView referenciado a cada uno que pusimos en la interfaz para as
poder poner los campos ingresados por el usuario en esta interfaz.
TextView
TextView
TextView
TextView
TextView

nombre_e = (TextView) findViewById(R.id.txtd_nombre);


direccion_e = (TextView) findViewById(R.id.txtd_dir);
telefono_e = (TextView) findViewById(R.id.txtd_tel);
email_e = (TextView) findViewById(R.id.txtd_email);
edad_e = (TextView) findViewById(R.id.txtd_edad1);

Luego asignaremos cada valor recibido al TextView que representa al campo.


direccion_e.setText(direccion);
telefono_e.setText(telefono.toString());
email_e.setText(email);
edad_e.setText(edad.toString());
Button ok = (Button) findViewById(R.id.btn_ok);
ok.setOnClickListener(new View.OnClickListener() {
@Override

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
public void onClick(View v) {
Intent in_main = new Intent(Despliegue.this, MainActivity.class);
startActivity(in_main);
}
});
Para el menu utilizamos el mismo mtodo ya mencionado antes, con los elementos
del men que contiene este Activity:
En este caso la opcin de Listado pasaremos los parmetros que se haban recibido
y los enviaremos a Listado, para ello utilizamos el Bundle y las variables de
cada campo para as poder enviarlos posteriormente creando el Intent
correspondiente y utilizando el mtodo putExtra.

Para la clase de Listado recibimos los parmetros exactamente igual que en


Despliegue, despus realizamos un arreglo que contendrn los valores que se
desplegaran en el ListView de este Activity.
Bundle extras = getIntent().getExtras();
String nombre = extras.getString("Nombre");
String direccion = extras.getString("Direccion");
Integer telefono =extras.getInt("telefono");
String email = extras.getString("email");
Integer edad = extras.getInt("edad");
Creamos un arreglo tipo String que contendr cada uno de estos valores y le
agregaremos dos campos, el primero de tu nombre completo y el siguiente el nombre
de la materia.
String [] datos
={nombre,direccion,telefono.toString(),email,edad.toString(),"Alejandro
Barreto Jimnez","Desarrollo mvil"};
Luego creamos el objeto ListView referenciado al objeto de la interfaz.

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
listView=(ListView)findViewById(R.id.listView);
Creamos un ArrayAdapter que es el que asignaremos al ListView, el ArrayAdapter
hace que la lista tenga los elementos y un estilo, creamos el objeto y de
parmetros le damos this (indicando que estamos en este Activity), luego le damos
un estilo de la lista y por ultimo el arreglo de los datos a mostrar.
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, datos);
Lueo le asignamos el ArrayAdapter a la ListView.
listView.setAdapter(adaptador);

El cdigo queda como acontinuacin.

Como ya sabemos le damos las opciones del men.

Para el Activity de cmara primero le daremos permiso a la aplicacin de poder acceder a ella,
para esto nos vamos a app/ManiFest en el archivo AndroidManifest escribimos el siguiente cdigo,
estamos indicando que la aplicacin utilizara la cmara.

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
<uses-permission android:name="android.permission.CAMERA" />

Para hacer que la cmara tenga funciones realizamos el siguiente cdigo en la clase Java.

Creamos un Boton, ImageView, Intent, constante y un Bitmap. Luego creamos el mtodo init que
es que iniciara los componentes del Button e ImageView y lo llamamos en el mtodo onCreate.
Button capturar;
ImageView iv;
Intent in_ca;
final static int cons=0;
Bitmap bmp;
public void init(){
capturar=(Button)findViewById(R.id.btn_capturar);
capturar.setOnClickListener(this);
iv =(ImageView)findViewById(R.id.Camara);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camara);
init();
}

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Luego sobrescribimos el mtodo onClick para que cuando el botn sea presionado
realice la accion
@Override
public void onClick(View v) {
int id=v.getId();
switch (id){
case R.id.btn_capturar:
Creamos el Intent para que acceda a la cmara, luego iniciamos la actividad.
in_ca= new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(in_ca,cons);
break;
}
}
Para mostrar la imagen tomada en el ImageView realizamos el siguiente cdigo:
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode,resultCode,data);
if (resultCode==Activity.RESULT_OK){
Bundle ex =data.getExtras();
bmp=(Bitmap)ex.get("data");
iv.setImageBitmap(bmp);
}
}
Para el Activity Web le damos permisos al Manifest para que pueda acceder a la
red:

Luego realizamos el siguiente cdigo para que este pueda acceder a un sitio web:
Creamos el objeto WebView referenciandolo al que est en la interfaz, creamos un
objeto WebSettings para poder darle algunas herramientas de zoom y le damos un
Url que es la pgina que abrir al abrir este Activity.
WebView navegador =(WebView)findViewById(R.id.webView);
WebSettings settings = navegador.getSettings();
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
navegador.loadUrl("https://www.google.com/");

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba

El Activity de Acerca De se va a mostrar en forma de un Popup o ventana emergente, para esto


nos vamos al Manifest y en el partado del Activity agregamos lo siguiente

Para poder cambiar el iconLauncher de la aplicacin, vamos a esta direccin para crear uno propio.
http://romannurik.github.io/AndroidAssetStudio/iconslauncher.html#foreground.space.trim=1&foreground.space.pad=0&foreColor=607d8b%2C0&crop
=0&backgroundShape=square&backColor=ffffff%2C100&effects=none

UA: Programacin Aplicada a Sistemas de Computo Mvil


M. en C. Roco Elizabeth Pulido Alba
Le damos en IMAGE para abrir una imagen y la seleccionamos

Podemos editarla y luego se procede a descargarla.

Una vez descargada, descomprimimos el archivo en la carpeta donde se encuentra nuestro


proyecto y vamos a la carpeta app\src\main\res y sustitumos las carpetas existentes

También podría gustarte