Aplication

302 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
302
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aplication

  1. 1. Universidad Tecnológica del Estado de Zacatecas Unidad Académica de Pinos APLICACIÓN EN ANDROID DESARROLLO DE APLICACIONES II ELOY CONTRETAS DELIRA TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN MÓNICA DE LOS ÁNGELES RAMÍREZ MORENO 5CUATRIMESTRE “A” 21/marzo/14
  2. 2. El siguiente código nos muestra la parte que vamos a ejecutar va a introducir modificar y eliminar los datos que el usuario nos proporcionara. MainActivity.java import android.app public class MainActivity extends.Activity; import android.os.Bundle; Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DataBaseManager manager = new DataBaseManager(this); /*ejemplos*/ manager.insertar("Jaime","11111111111"); manager.insertar2("Juan","222222222"); manager.insertar("Ana","3333333"); manager.eliminar("juan"); manager.modificarTelefono("Ana","55555555"); } } El siguiente código nos muestra la clase que vamos a utilizar para mandar a llamar la clase o la base de datos que está disponible en la carpeta del mismo proyecto- DbHelper.java
  3. 3. import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DbHelper extends SQLiteOpenHelper { private static final String DB_NAME = "contactos.sqlite"; private static final int DB_SCHEME_VERSION = 1; public DbHelper(Context context) { super(context, DB_NAME, null, DB_SCHEME_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DataBaseManager.CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } El siguiente codigo nos muestra la base de datos que vamos a ocupar para guardar modificar eliminar y consultar los datos ya introducido. DataBaseManager.java import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase;
  4. 4. public class DataBaseManager { public static final String TABLE_NAME = "contactos"; public static final String CN_ID = "_id"; public static final String CN_NAME = "nombre"; public static final String CN_PHONE = "telefono"; public static final String CREATE_TABLE = "create table " +TABLE_NAME+ " (" + CN_ID + " integer primary key autoincrement," + CN_NAME + " text not null," + CN_PHONE + " text);"; private DbHelper helper; private SQLiteDatabase db; public DataBaseManager(Context context) { helper = new DbHelper(context); db = helper.getWritableDatabase(); } private ContentValues generarContentValues(String nombre, String telefono) { ContentValues valores = new ContentValues(); valores.put(CN_NAME, nombre); valores.put(CN_PHONE, telefono); return valores; } public void insertar(String nombre, String telefono) { //bd.insert(TABLA, NullColumnHack, ContentValues);
  5. 5. db.insert(TABLE_NAME, null, generarContentValues(nombre,telefono) ); } public void insertar2(String nombre, String telefono) { //INSERT INTO contactos VALUES (null,'paco',9999) db.execSQL("insert into "+TABLE_NAME+" values (null,'"+nombre+"',"+telefono+")"); } public void eliminar(String nombre) { //bd.delete (Tabla, Claúsula Where, Argumentos Where) db.delete(TABLE_NAME, CN_NAME + "=?", new String[]{nombre}); } public void eliminarMultiple(String nom1, String nom2) { db.delete(TABLE_NAME, CN_NAME + "IN (?,?)", new String[]{nom1,nom2}); } public void modificarTelefono(String nombre, String nuevoTelefono) { /*bd.update(TABLA, ContentValues, Clausula Where, Argumentos Where)*/ db.update(TABLE_NAME, generarContentValues(nombre, nuevoTelefono), CN_NAME + "=?", new String[]{nombre}); } } Para hacer una consulta a la base de datos y que nos devuelva valores, tenemos dos opciones, una utilizar el métodorawQuery("Select...") donde escribiremos la consulta en lenguaje SQL. La segunda forma y es la que veremos aquí es con el método query que nos proporciona android.
  6. 6. El método query tiene la siguiente estructura: query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) Nota Mental: si usas SimpleCursoAdapter para mostrar datos, este adaptador requiere la columna _id. Continuando con el tutorial anterior añadiremos el siguiente método a la clase DataBaseManager.java public Cursor cargarCursorContactos() { String[] columnas = new String[]{CN_ID, CN_NAME,CN_PHONE}; return db.query(TABLE_NAME, columnas, null, null, null, null, null); } Este método cargarCursoContactos() nos devuelve todos los contactos que tengamos en la base de datos. Esto puede suponer una operación muy costosa tanto en memoria como en la operación de lectura si tratásemos con una gran cantidad de datos, y además puede darnos en ese caso un ANR o Application Not Responding, donde al usuario le mostrará un mensaje con la opción de Esperar ( a que termine de realizar la consulta) o Forzar Cierre ( y esto no lo queremos). Para evitar un ANR, basta con trabajar en segundo plano, pero tendrás que esperar al siguiente tutorial para ver un ejemplo :) Para buscar un contacto por el nombre, utilizaremos el siguiente método:
  7. 7. public Cursor buscarContacto(String nombre) { String[] columnas = new String[]{CN_ID,CN_NAME,CN_PHONE}; return db.query(TABLE_NAME,columnas,CN_NAME + "=?",new String[]{nombre},null,null,null); }

×