Aplicacion movil
Upcoming SlideShare
Loading in...5
×
 

Aplicacion movil

on

  • 245 views

 

Statistics

Views

Total Views
245
Views on SlideShare
245
Embed Views
0

Actions

Likes
1
Downloads
13
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Aplicacion movil Aplicacion movil Document Transcript

  • 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;}}