SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
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 ANDROID CON ACCESO A BASE DE DATOS
Nombre: Rocío Marbelín Zapata Palomo
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
AGENDA ANDROID
1-. Creando la base de datos.
Para comenzar la creación de la aplicación android para dispositivos móviles es
necesario crear la base de datos, donde esta es la encargada de hacer la conexión, para
que haya comunicación entre las diferentes clases que se van a realizar.
Mostrando enseguida el código para crear la base de datos.
package proyectagenda.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);
}
/** Called when the activity is first created. */
@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);
}
}
Librerías utilizadas
para crear y abrir la
base de datos
Nombre del paquete
Declaración de
variables, las cuales
debes llenar
Con este código se crea la base de
datos llamada AgendaContactos
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
2.- Crear la clase Nuevo
A continuación se crea la primera clase llamada Nuevo, esta clase nos permitirá acceder
e ingresar nuevos contactos. Una vez que hayas ingresado algún dato este se guardara
en la base de datos ya creada.
Código de la clase Nuevo.
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);
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)
{
Nombre del paquete
Librerías aplicadas a la clase
nuevo, que son indispensables
para que la aplicación tenga
funcionamiento
Nombre de nuestra actividad
principal
Nombres de las variables
Estas líneas de código
hacen la comparación de
la declaración de
variables con el nombre
de las mismas
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
insert(nombre.getText().toString(),telefono.getText().toString(),email.getText().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-. Crear la clase Modificar.
La segunda clase por crear es la de modificar que tiene como función corregir los datos
que no se ocupen, o si hay algún dato que se haya cambiado, para eso utilizamos el
método modificar().
A continuación el código de la clase modificar.
package proyectagenda.com;
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);
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
else
{
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;
}
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
4-.Crear la clase Eliminar
La tercera clase por crear es la de eliminar y para que se cumpla esta función es
necesario crear y utilizar el método Delete();
Donde su misión es borrar los datos o contactos que no se ocupen.
Mostrando enseguida el código de dicha clase.
package proyectagenda.com;
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;
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;
}
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;
}
}
5-.Crear la clase Consultar.
En la siguiente clase llamada consultar es la encargada de buscar algún contacto, ya sea
para llamarle, borrarlo o hacerle una modificación.
Enseguida el código
package proyectagenda.com;
import proyectagenda.com.R;
import proyectagenda.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;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buscarcontacto);
nombre=(EditText)findViewById(R.id.nombre);
}
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
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);
it.putExtra("nombre", nombre.getText().toString());
startActivity(it);
}
else
{
Toast.makeText(getApplicationContext(),
"El contacto especificado 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(),
"Ha ocurrido un 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);
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
if (c.moveToFirst()) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(buscar.this);
alertDialog.setMessage("¿Desea realizar la llamada al contacto?");
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(),
"No se ha podido realizar la llamada", 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 especificado no existe.!", Toast.LENGTH_LONG).show();
db.close();
}}

Más contenido relacionado

La actualidad más candente

Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con AndroidTutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con AndroidLuis Ernesto Castillo Alfaro
 
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con AndroidLuis Ernesto Castillo Alfaro
 
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con AndroidLuis Ernesto Castillo Alfaro
 
Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con AndroidLuis Ernesto Castillo Alfaro
 
Formulario de altas
Formulario de altasFormulario de altas
Formulario de altasSicohe
 
Laboratorio3 check box
Laboratorio3 check boxLaboratorio3 check box
Laboratorio3 check boxMiguel Jc
 

La actualidad más candente (6)

Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con AndroidTutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
 
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro 1 de Desarrollo de Aplicaciones Móviles con Android
 
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.3 - Desarrollo de Aplicaciones Móviles con Android
 
Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con AndroidTutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android
Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android
 
Formulario de altas
Formulario de altasFormulario de altas
Formulario de altas
 
Laboratorio3 check box
Laboratorio3 check boxLaboratorio3 check box
Laboratorio3 check box
 

Destacado

Diamonds Are Forever: An Educational Guide by TBGoods
Diamonds Are Forever: An Educational Guide by TBGoodsDiamonds Are Forever: An Educational Guide by TBGoods
Diamonds Are Forever: An Educational Guide by TBGoodsTBGoods
 
π թիվը1
π թիվը1π թիվը1
π թիվը1Sona8
 
պի
պիպի
պիSona8
 
O leitor no campus online, o receptor também é emissor na rede
O leitor no campus online, o receptor também é emissor na redeO leitor no campus online, o receptor também é emissor na rede
O leitor no campus online, o receptor também é emissor na redeMárcia Marques
 
Teste - O Violão no Frevo - Somente a parte das levadas do frevo
Teste - O Violão no Frevo - Somente a parte das levadas do frevoTeste - O Violão no Frevo - Somente a parte das levadas do frevo
Teste - O Violão no Frevo - Somente a parte das levadas do frevomanda555
 
Joomla overrides [NL]
Joomla overrides [NL]Joomla overrides [NL]
Joomla overrides [NL]Robin Poort
 
Appraisal haina east side - ros - 2012 (english)
Appraisal   haina east side - ros - 2012 (english)Appraisal   haina east side - ros - 2012 (english)
Appraisal haina east side - ros - 2012 (english)cd_nieto
 
Educational games
Educational gamesEducational games
Educational gamesNais Yabal
 
Route 1 the city
Route 1 the cityRoute 1 the city
Route 1 the cityfaustofer
 

Destacado (20)

Diamonds Are Forever: An Educational Guide by TBGoods
Diamonds Are Forever: An Educational Guide by TBGoodsDiamonds Are Forever: An Educational Guide by TBGoods
Diamonds Are Forever: An Educational Guide by TBGoods
 
Trademark Research & Brand Protection Brand Names published in Trademark Jour...
Trademark Research & Brand Protection Brand Names published in Trademark Jour...Trademark Research & Brand Protection Brand Names published in Trademark Jour...
Trademark Research & Brand Protection Brand Names published in Trademark Jour...
 
π թիվը1
π թիվը1π թիվը1
π թիվը1
 
պի
պիպի
պի
 
1393934893 mba
1393934893 mba1393934893 mba
1393934893 mba
 
pi
pipi
pi
 
O leitor no campus online, o receptor também é emissor na rede
O leitor no campus online, o receptor também é emissor na redeO leitor no campus online, o receptor também é emissor na rede
O leitor no campus online, o receptor também é emissor na rede
 
apuntesdiegoowq
apuntesdiegoowqapuntesdiegoowq
apuntesdiegoowq
 
pi
pipi
pi
 
Unidades de longitud
Unidades de longitudUnidades de longitud
Unidades de longitud
 
Aditzak
AditzakAditzak
Aditzak
 
Atención farmacéutica el proceso
Atención farmacéutica el procesoAtención farmacéutica el proceso
Atención farmacéutica el proceso
 
Offical
OfficalOffical
Offical
 
Teste - O Violão no Frevo - Somente a parte das levadas do frevo
Teste - O Violão no Frevo - Somente a parte das levadas do frevoTeste - O Violão no Frevo - Somente a parte das levadas do frevo
Teste - O Violão no Frevo - Somente a parte das levadas do frevo
 
Boost converter
Boost converterBoost converter
Boost converter
 
Joomla overrides [NL]
Joomla overrides [NL]Joomla overrides [NL]
Joomla overrides [NL]
 
Appraisal haina east side - ros - 2012 (english)
Appraisal   haina east side - ros - 2012 (english)Appraisal   haina east side - ros - 2012 (english)
Appraisal haina east side - ros - 2012 (english)
 
Educational games
Educational gamesEducational games
Educational games
 
Route 1 the city
Route 1 the cityRoute 1 the city
Route 1 the city
 
Use will
Use willUse will
Use will
 

Similar a Aplicación móvil (20)

Aplicación móvil con acceso a datos
Aplicación móvil con acceso a datosAplicación móvil con acceso a datos
Aplicación móvil con acceso a datos
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Documentacion
DocumentacionDocumentacion
Documentacion
 
Las aplicasiones de androi ddd
Las aplicasiones de androi dddLas aplicasiones de androi ddd
Las aplicasiones de androi ddd
 
Documento de eloy
Documento de eloyDocumento de eloy
Documento de eloy
 
Aplication
AplicationAplication
Aplication
 
Aplicacion android
Aplicacion androidAplicacion android
Aplicacion android
 
Aplicacion android
Aplicacion androidAplicacion android
Aplicacion android
 
Aplicacion de agenda de contactos
Aplicacion de agenda de contactosAplicacion de agenda de contactos
Aplicacion de agenda de contactos
 
Android bootcamp 101 v2.0
Android bootcamp 101 v2.0Android bootcamp 101 v2.0
Android bootcamp 101 v2.0
 
Presentación11
Presentación11Presentación11
Presentación11
 
Presentación11
Presentación11Presentación11
Presentación11
 
Clase 1 Programacion Android
Clase 1 Programacion AndroidClase 1 Programacion Android
Clase 1 Programacion Android
 
Manual de android
Manual de androidManual de android
Manual de android
 
Aplicacion agenda
Aplicacion agendaAplicacion agenda
Aplicacion agenda
 
Android
AndroidAndroid
Android
 
A1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datosA1 u4gb aplicación móvil con acceso a datos
A1 u4gb aplicación móvil con acceso a datos
 

Más de Chioo Marbelin Zapata (11)

Sistemas de telecomunicacion
Sistemas de telecomunicacionSistemas de telecomunicacion
Sistemas de telecomunicacion
 
Polimorfismo1
Polimorfismo1Polimorfismo1
Polimorfismo1
 
Tabla comparativa1
Tabla comparativa1Tabla comparativa1
Tabla comparativa1
 
Seguridad
SeguridadSeguridad
Seguridad
 
Manipulacion de datos
Manipulacion de datosManipulacion de datos
Manipulacion de datos
 
Use going
Use goingUse going
Use going
 
Ingles.iii
Ingles.iiiIngles.iii
Ingles.iii
 
Bases de datosii
Bases de datosiiBases de datosii
Bases de datosii
 
Actividad 1 rocio_marbelin
Actividad 1 rocio_marbelinActividad 1 rocio_marbelin
Actividad 1 rocio_marbelin
 
Actividad 1 rocio_marbelin
Actividad 1 rocio_marbelinActividad 1 rocio_marbelin
Actividad 1 rocio_marbelin
 
Actividad 1 rocio
Actividad 1 rocioActividad 1 rocio
Actividad 1 rocio
 

Aplicación móvil

  • 1. 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 ANDROID CON ACCESO A BASE DE DATOS Nombre: Rocío Marbelín Zapata Palomo Grado: 5 Grupo: “B” Nombre del Docente : Eloy Contreras de Lira Fecha de entrega : 24/03/2014
  • 2. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN AGENDA ANDROID 1-. Creando la base de datos. Para comenzar la creación de la aplicación android para dispositivos móviles es necesario crear la base de datos, donde esta es la encargada de hacer la conexión, para que haya comunicación entre las diferentes clases que se van a realizar. Mostrando enseguida el código para crear la base de datos. package proyectagenda.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); } /** Called when the activity is first created. */ @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); } } Librerías utilizadas para crear y abrir la base de datos Nombre del paquete Declaración de variables, las cuales debes llenar Con este código se crea la base de datos llamada AgendaContactos
  • 3. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 2.- Crear la clase Nuevo A continuación se crea la primera clase llamada Nuevo, esta clase nos permitirá acceder e ingresar nuevos contactos. Una vez que hayas ingresado algún dato este se guardara en la base de datos ya creada. Código de la clase Nuevo. 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); 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) { Nombre del paquete Librerías aplicadas a la clase nuevo, que son indispensables para que la aplicación tenga funcionamiento Nombre de nuestra actividad principal Nombres de las variables Estas líneas de código hacen la comparación de la declaración de variables con el nombre de las mismas
  • 4. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN insert(nombre.getText().toString(),telefono.getText().toString(),email.getText().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 } }
  • 5. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 3-. Crear la clase Modificar. La segunda clase por crear es la de modificar que tiene como función corregir los datos que no se ocupen, o si hay algún dato que se haya cambiado, para eso utilizamos el método modificar(). A continuación el código de la clase modificar. package proyectagenda.com; 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); }
  • 6. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN else { 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. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 4-.Crear la clase Eliminar La tercera clase por crear es la de eliminar y para que se cumpla esta función es necesario crear y utilizar el método Delete(); Donde su misión es borrar los datos o contactos que no se ocupen. Mostrando enseguida el código de dicha clase. package proyectagenda.com; 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; 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; }
  • 8. 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; } } 5-.Crear la clase Consultar. En la siguiente clase llamada consultar es la encargada de buscar algún contacto, ya sea para llamarle, borrarlo o hacerle una modificación. Enseguida el código package proyectagenda.com; import proyectagenda.com.R; import proyectagenda.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; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.buscarcontacto); nombre=(EditText)findViewById(R.id.nombre); }
  • 9. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN 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); it.putExtra("nombre", nombre.getText().toString()); startActivity(it); } else { Toast.makeText(getApplicationContext(), "El contacto especificado 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(), "Ha ocurrido un 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);
  • 10. UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN if (c.moveToFirst()) { AlertDialog.Builder alertDialog = new AlertDialog.Builder(buscar.this); alertDialog.setMessage("¿Desea realizar la llamada al contacto?"); 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(), "No se ha podido realizar la llamada", 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 especificado no existe.!", Toast.LENGTH_LONG).show(); db.close(); }}