aplicacion movil para el turismo en la ciudad de logroño con tecnologias de realidad aumentada
Aplicacion movil
-
Upload
ruben-robles -
Category
Documents
-
view
249 -
download
0
Transcript of Aplicacion movil
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Materia
Desarrollo de Aplicaciones III
Tema
Aplicación Móvil con Acceso a Datos
Integrantes del Equipo: Adriana Berenice Renovato Ceja
Grado: 5 Grupo: “B” Nombre del Docente : Eloy Contreras de Lira Fecha de entrega : 24/03/2014
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Pasos para la creación de una Aplicación Móvil con
Acceso a Datos. Paso 1. Primero se ejecuta el programa de Eclipse
Paso 2. Después aparece la interfaz de eclipse y selecciona la pestaña de tiene el
nombre de File y en la lista desplegable New y para finalizar presiona Android
Application Project que significa (proyecto de aplicación Android).
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Paso 3. Después aparece una ventana donde se pondrá el nombre de cómo se
va a llamar la aplicación y del proyecto y pulsamos el botón de Next a todas las
ventanas que vallan apareciendo y al concluir
Paso 4.Como vemos nuestro paquete ya fue creado donde aparecen una serie de
carpetas cada una de estas tienen diferente funcion.
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Paso 5. Es una de las carpetas principales del proyecto, por no decir la más
importante. En ella residen todos los archivos de código fuente Java que
componen la aplicación, entre ellos, las Actividades (clases que extienden de
Activity).
Paso 6. Carpeta bin Contiene los archivos de la aplicación compilados, también
contiene el .apk que es la aplicación que se pasa al móvil para que pueda
funcionar en este.
Paso 7. Subcarpeta Layout que también podrá contener otras subcarpetas. En su
raíz, contendrá los descriptores xml de las vistas. Las subcarpetas podrán
contener layouts específicos para pantallas.
Estos son los archivos xml que se utilizaran para crear la interfaz grafica de la
aplicación móvil.
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
1. Creación de la Base de Datos
Para crean nuestra aplicación móvil con acceso a datos lo primero es crear
nuestra base de datos para que al momento de ejecutar la dicha aplicación en el
móvil los datos que se ingresen se vallan guardando correctamente, se crea una
clase llamada Clase DataBaseHelper.java.
Se agregan las librerías que se utilizaran para que la base de datos se cree,
también se declaran las variables que se utilizaran en la B.D, las cuales estas
servirán para que se guardan la información correspondiente a cada campo.
package Agenda.com;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DataBaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME="Agenda01";
public static final String NOMBRE="nombre";
public static final String TELEFONO="telefono";
public static final String EMAIL="email";
public static final String DIRECCION="direccion";
public DataBaseHelper(Context context)
{
super(context,DATABASE_NAME,null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE AgendaContactos(_id INTEGER PRIMARY KEY
AUTOINCREMENT, nombre TEXT, telefono TEXT, email TEXT,direccion TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
android.util.Log.v("Constante", "Actualiza la base de datos y destruye la
base de datos antigua con el mismo nombre");
db.execSQL("DROP table if exists AgendaContactos");
onCreate(db);
}
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
2. Creación de la Clase Nuevo.java
Esta clase es creada para dar de alta un nuevo usuario o contacto en Agenda. Una vez
que fue creada nuestra B.D, los datos que son ingresados por el usuario serán
guardados.
Las librerías que se van creando son dependiendo del código que se valla ingresando,
son muy importantes para que nuestra aplicación tenga funcionamiento, en esta también
se hace la declaración de las variables, lo cual se hace la comparación con el nombre de
estas mismas.
Se manda llamar el método agregar, este manda un mensaje de confirmación “De que el
contacto fue guardado correctamente”.
package proyectagenda.com;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class Nuevo extends Activity{
public EditText nombre,telefono,email,direccion;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.agregarususario);
nombre=(EditText)findViewById(R.id.nombre);
telefono=(EditText)findViewById(R.id.telefono);
direccion=(EditText)findViewById(R.id.direccion);
email=(EditText)findViewById(R.id.email);
}
private void insert(String nombre, String telefono, String email,
String direccion){
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(DataBaseHelper.NOMBRE, nombre);
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
cv.put(DataBaseHelper.TELEFONO, telefono);
cv.put(DataBaseHelper.EMAIL, email);
cv.put(DataBaseHelper.DIRECCION, direccion);
db.insert("AgendaContactos",DataBaseHelper.NOMBRE,cv);
db.close();
}
public void agregar(View b)
{
insert(nombre.getText().toString(),telefono.getText().toString(),email.ge
tText().toString(),direccion.getText().toString());
Toast.makeText(getApplicationContext(),
"Contacto agregado correctamente",
Toast.LENGTH_LONG).show();
nombre.setText("");
email.setText("");
direccion.setText("");
telefono.setText("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.layout.menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case R.id.item2: Intent intent = new
Intent(this,AgendaAndroidActivity.class);
startActivity(intent);
break;
}
return true }
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
3. Creación de la Clase buscar.java
Esta clase le permite al usuario buscar o consultar en su aplicación aquellos
contactos que ya han sido registrados y guardados en la B.D. En esta clase puede
buscar al contacto para hacerle una llamada, eliminarlo o modificarlo.
El código que se utilizaría seria el siguiente:
package Agenda.com;
import proyectagenda.com.R;
import Agenda.com.buscar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class buscar extends Activity{
public EditText nombre;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buscarcontacto);
nombre=(EditText)findViewById(R.id.nombre);
}
public void buscar(View b)
{
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
String[] campos = new String[] {"nombre"};
String[] args = new String[] {nombre.getText().toString()};
Cursor c = db.query("AgendaContactos", campos, "nombre=?",
args, null, null, null);
if (c.moveToFirst()) {
Intent it=new Intent(this,Detalle.class);
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
it.putExtra("nombre", nombre.getText().toString());
startActivity(it);
}
else
{
Toast.makeText(getApplicationContext(),
"El contacto no existe.!",
Toast.LENGTH_LONG).show();
db.close();
}
}
public String recuperanum()
{
String numero="";
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
String[] campos = new String[] {"telefono"};
String[] args = new String[] {nombre.getText().toString()};
Cursor c = db.query("AgendaContactos", campos, "nombre=?",
args, null, null, null);
if (c.moveToFirst()) {
do {
String telefono = c.getString(0);
numero=telefono;
} while(c.moveToNext());
}
else
{
Toast.makeText(getApplicationContext(),
"error :(", Toast.LENGTH_LONG).show();
db.close();
}
return numero;
}
public void llamar(View b)
{
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
String[] campos = new String[] {"nombre"};
String[] args = new String[] {nombre.getText().toString()};
Cursor c = db.query("AgendaContactos", campos, "nombre=?",
args, null, null, null);
if (c.moveToFirst()) {
AlertDialog.Builder alertDialog = new
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
AlertDialog.Builder(buscar.this);
alertDialog.setMessage ("¿Desea realizar llamada?");
alertDialog.setTitle ("Llamar a contacto...");
alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
alertDialog.setCancelable(false);
alertDialog.setPositiveButton("SI", new
DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
try
{
String numero=recuperanum();
String number = "tel:" + numero.trim();
Toast.makeText(getApplicationContext(),
"Llamando al " + numero.trim(),
Toast.LENGTH_LONG).show();
Intent callIntent = new Intent(Intent.ACTION_CALL,
Uri.parse(number));
startActivity(callIntent);
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),
"Llamada bloqueada",
Toast.LENGTH_LONG).show();
}
}
});
alertDialog.setNegativeButton("No", new
DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(getApplicationContext(),
"Llamada cancelada", Toast.LENGTH_LONG).show();
}
});
alertDialog.show();
}
else
{
Toast.makeText(getApplicationContext(),
"El contacto no existe.!",
Toast.LENGTH_LONG).show();
db.close();
}}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.layout.menu1, menu);
return true;
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case R.id.item2: Intent intent = new
Intent(this,AgendaAndroidActivity.class);
startActivity(intent);
break;
}
return true;
}
}
4. Creación de la Clase Llamarcontacto.java
Esta clase lo que hace es que se selecciona un contacto para esto manda llamar
el método buscar, el código que se utilizara es el siguiente:
package Agenda.com;
import android.app.Activity;
public class Llamacontacto extends Activity{
}
5. Creación de la Clase EliminarContacto.java
La creación de esta clase tiene como función borrar contactos que ya no se
utilicen o que no sean tan importantes en nuestra Agenda, o tan simple que ya no
queramos que aparezcan registrados. El código es el siguiente para que esta
función de eliminar se ejecute al momento de utilizar nuestra aplicación móvil.
La funcionalidad del código es que hace la conexión a la B.D, donde se manda
llamar el método eliminar donde se selecciona el nombre de la persona, lo cual
manda un mensaje de confirmación.
package Agenda.com;
import proyectagenda.com.R;
import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
import android.widget.EditText;
import android.widget.Toast;
public class EliminarContacto extends Activity{
EditText nombre;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.eliminarcontacto);
nombre=(EditText)findViewById(R.id.nombre);
}
public void eliminar(View b)
{
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
String[] args = new String[]{nombre.getText().toString()};
db.execSQL("DELETE FROM AgendaContactos WHERE nombre=?", args);
Toast.makeText(getApplicationContext(),
"Contacto eliminado con exito.!",
Toast.LENGTH_LONG).show();
db.close();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.layout.menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case R.id.item2: Intent intent = new
Intent(this,AgendaAndroidActivity.class);
startActivity(intent);
break;
}
return true;
}
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
6. Creación de la Clase Modificar1.java
Para modificar un registro, para ello se necesitaran crear dos clases una llama
Modificar1 y otra Modificar2.
Modificar tiene como funcion hacer modificaciones a cualquier dato que se quiera
corregir, o bien que este mal escrito.
package Agenda.com;
import proyectagenda.com.R;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class Modificar1 extends Activity{
public EditText nombre;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modificarcontacto);
nombre=(EditText)findViewById(R.id.nombre);
}
public void modificar(View b)
{
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
String[] campos = new String[] {"nombre"};
String[] args = new String[] {nombre.getText().toString()};
Cursor c = db.query("AgendaContactos", campos, "nombre=?",
args, null, null, null);
//Nos aseguramos de que existe al menos un registro
if (c.moveToFirst()) {
Intent it=new Intent(this,Modificar2.class);
it.putExtra("nombre", nombre.getText().toString());
startActivity(it);
}
else
{
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Toast.makeText(getApplicationContext(),
"El contacto especificado no existe.!",
Toast.LENGTH_LONG).show();
db.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.layout.menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case R.id.item2: Intent intent = new
Intent(this,AgendaAndroidActivity.class);
startActivity(intent);
break;
}
return true;
}
}
7. Creación de la Clase Modificar2.java
package Agenda.com;
import proyectagenda.com.R;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class Modificar2 extends Activity{
public String nombre;
public EditText name,tel,ema,dir;
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modficacion02);
name=(EditText)findViewById(R.id.nombre);
tel=(EditText)findViewById(R.id.telefono);
dir=(EditText)findViewById(R.id.direccion);
ema=(EditText)findViewById(R.id.email);
Bundle bundle=getIntent().getExtras();
nombre=bundle.getString("nombre");
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
String[] campos = new String[]
{"nombre","telefono","email","direccion"};
String[] args = new String[] {nombre};
Cursor c = db.query("AgendaContactos", campos, "nombre=?",
args, null, null, null);
//Nos aseguramos de que existe al menos un registro
if (c.moveToFirst()) {
//Recorremos el cursor hasta que no haya más registros
do {
String nombre = c.getString(0);
String telefono = c.getString(1);
String email=c.getString(2);
String direccion=c.getString(3);
name.setText(nombre);
tel.setText(telefono);
ema.setText(email);
dir.setText(direccion);
} while(c.moveToNext());
}
else
{
Toast.makeText(getApplicationContext(),
"Ha ocurrido un error :(",
Toast.LENGTH_LONG).show();
db.close();
}
}
public void modificar(View b)
{
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
DataBaseHelper dbh=new DataBaseHelper(this);
SQLiteDatabase db= dbh.getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put("telefono",tel.getText().toString());
valores.put("email", ema.getText().toString());
valores.put("direccion", dir.getText().toString());
String[] args = new String[]{name.getText().toString()};
db.update("AgendaContactos", valores, "nombre=?", args);
Toast.makeText(getApplicationContext(),
"Contacto se ha modificado exitosamente!!",
Toast.LENGTH_LONG).show();
db.close();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.layout.menu2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case R.id.item2: Intent intent = new
Intent(this,AgendaAndroidActivity.class);
startActivity(intent);
}
switch (item.getItemId()) {
case R.id.item3: Intent it = new
Intent(this,Modificar1.class);
startActivity(it);
break;
}
return true;}}