como gestionar usuarios con SQLite en android studio

Después de ver en el tutorial pasado una guía básica de sentencias en SQLite  hoy utilizaremos dicho conocimiento viendo un ejercicio de como gestionar usuarios con SQLite en android studio, donde se tomara lo siguiente:
Agregar usuario
Buscar usuario por Dni
Eliminar usuario
Actualizar usuario

Si hacemos recuento ya hemos visto ejercicios similiares pero con otros gestores de bases de datos si te interesa puedes revizar los siguientes enlaces:

Registrar Usuario en php y mysql
Listar Usuario en php y mysql
Eliminar Usuario en php y mysql
Actualizar Usuario en php y mysql

Continuando con nuestro ejercicio el producto final se vera como en la siguiente imagen.

Bien empezamos de una ves debemos crear una interfaces como la imagen de arriba 4 ediText para insertar los datos nuevos y 4 botones para gestionar cada una de las opciones.
Nuestro actitivity_main.xml quedaría de la siguiente forma:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.androidmorefast.pc.appejersqlite01.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DNI"
android:id="@+id/txtDni"
android:layout_alignParentLeft="true" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editTxtDni"
android:layout_below="@+id/txtDni"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nombre y apellidos"
android:id="@+id/txtNombre"
android:layout_below="@+id/editTxtDni"
android:layout_alignParentLeft="true" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editTxtNombre"
android:layout_below="@+id/txtNombre"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/editTxtDni" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ciudad"
android:id="@+id/txtCiudad"
android:layout_below="@+id/editTxtNombre"
android:layout_alignParentLeft="true" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editTxtCiudad"
android:layout_below="@+id/txtCiudad"
android:layout_alignRight="@+id/editTxtNombre"
android:layout_alignParentLeft="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Número"
android:id="@+id/txtNumero"
android:layout_below="@+id/editTxtCiudad"
android:layout_alignParentLeft="true" />

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editTxtNumero"
android:layout_below="@+id/txtNumero"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/editTxtCiudad"
android:layout_alignParentRight="false" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Actualizar Datos"
android:id="@+id/btnEditar"
android:onClick="modificar"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="54dp" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Eliminar"
android:id="@+id/btnEliminar"
android:onClick="eliminar"
android:layout_marginRight="61dp"
android:layout_marginEnd="61dp"
android:layout_above="@+id/btnEditar"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginBottom="19dp" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Consulta DNI"
android:id="@+id/btnBuscar"
android:onClick="consultar"
android:layout_below="@+id/editTxtNumero"
android:layout_alignRight="@+id/btnAgregar"
android:layout_alignEnd="@+id/btnAgregar" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Agregar"
android:id="@+id/btnAgregar"
android:onClick="agregar"
android:layout_alignBaseline="@+id/btnEliminar"
android:layout_alignBottom="@+id/btnEliminar"
android:layout_alignRight="@+id/txtNombre"
android:layout_alignEnd="@+id/txtNombre" />

</RelativeLayout>

Continuando con el tutorial se aclara que se utilizara dos clases para este ejercicio
MainActivity.java
AdminSQLite.java

En el MainActivity veremos las consultas necesarias para poder gestionar el usuario y la inicialización de nuestros editText y botones:

public class MainActivity extends Activity {

private EditText eTxt1, eTxt2, eTxt3, eTxt4;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// proviene del layout, son los campos de texto
eTxt1 = (EditText) findViewById(R.id.editTxtDni); eTxt2 = (EditText) findViewById(R.id.editTxtNombre);
eTxt3 = (EditText) findViewById(R.id.editTxtCiudad); eTxt4 = (EditText) findViewById(R.id.editTxtNumero);

}

// Damos de alta los usuarios en nuestra aplicación
public void agregar(View v) {

AdminSQLite admin = new AdminSQLite(this,

"administracion", null, 1);

SQLiteDatabase bd = admin.getWritableDatabase();

String dni = eTxt1.getText().toString();
String nombre = eTxt2.getText().toString();
String ciudad = eTxt3.getText().toString();
String numero = eTxt4.getText().toString();

ContentValues registro = new ContentValues();

registro.put("dni", dni);
registro.put("nombre", nombre);
registro.put("ciudad", ciudad);
registro.put("numero", numero);

// los inserto en la base de datos
bd.insert("usuario", null, registro);

bd.close();

// ponemos los campos a vacío para insertar el siguiente usuario
eTxt1.setText(""); eTxt2.setText(""); eTxt3.setText(""); eTxt4.setText("");

Toast.makeText(this, "Datos del usuario cargados", Toast.LENGTH_SHORT).show();

}

// Hacemos búsqueda de usuario por DNI
public void consultar(View v) {

AdminSQLite admin = new AdminSQLite(this,

"administracion", null, 1);

SQLiteDatabase bd = admin.getWritableDatabase();

String dni = eTxt1.getText().toString();

Cursor fila = bd.rawQuery(

"select nombre, ciudad, numero from usuario where dni=" + dni, null);

if (fila.moveToFirst()) {

eTxt2.setText(fila.getString(0));
eTxt3.setText(fila.getString(1));
eTxt4.setText(fila.getString(2));

} else

Toast.makeText(this, "No existe ningún usuario con ese dni",

Toast.LENGTH_SHORT).show();

bd.close();

}
/* Método para dar de baja al usuario insertado*/
public void eliminar(View v) {

AdminSQLite admin = new AdminSQLite(this,

"administracion", null, 1);

SQLiteDatabase bd = admin.getWritableDatabase();

String dni = eTxt1.getText().toString();

// aquí borro la base de datos del usuario por el dni
int cant = bd.delete("usuario", "dni=" + dni, null);

bd.close();

eTxt1.setText(""); eTxt2.setText(""); eTxt3.setText(""); eTxt4.setText("");

if (cant == 1)

Toast.makeText(this, "Usuario eliminado",

Toast.LENGTH_SHORT).show();

else

Toast.makeText(this, "No existe usuario",

Toast.LENGTH_SHORT).show();
}


// Método para modificar la información del usuario
public void modificar(View v) {

AdminSQLite admin = new AdminSQLite(this,

"administracion", null, 1);

SQLiteDatabase bd = admin.getWritableDatabase();

String dni = eTxt1.getText().toString();
String nombre = eTxt2.getText().toString();
String ciudad = eTxt3.getText().toString();
String numero = eTxt4.getText().toString();

ContentValues registro = new ContentValues();

// actualizamos con los nuevos datos, la información cambiada
registro.put("nombre", nombre);
registro.put("ciudad", ciudad);
registro.put("numero", numero);

int cant = bd.update("usuario", registro, "dni=" + dni, null);

bd.close();

if (cant == 1)

Toast.makeText(this, "Datos modificados con éxito", Toast.LENGTH_SHORT)

.show();

else

Toast.makeText(this, "No existe usuario",

Toast.LENGTH_SHORT).show();

}

/* fin del programa */

}

Ahora veremos nuestro AdminSQLite   esta clase nos servirá para administrar nuestra BD donde la crearemos a ella y sus tablas:

public class AdminSQLite extends SQLiteOpenHelper {
public AdminSQLite(Context context, String nombre, SQLiteDatabase.CursorFactory factory, int version) {

super(context, nombre, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

//aquí creamos la tabla de usuario (dni, nombre, ciudad, numero)
db.execSQL("create table usuario(dni integer primary key, nombre text, ciudad text, numero integer)");

}

@Override

public void onUpgrade(SQLiteDatabase db, int version1, int version2) {

db.execSQL("drop table if exists usuario");

db.execSQL("create table usuario(dni integer primary key, nombre text, ciudad text, numero integer)");

}


}

Link de la descarga

Programador alfa, lomo plateado, barba de clavos, mentón de roca, no descarga la aplicación sigue el tutorial. Clic para DESCARGAR

     
ENLACES DE INTERÉS:

4 comentarios en «como gestionar usuarios con SQLite en android studio»

  1. Android Facil Oficial

    Cuando tiene problemas de ejecución, por ejemplo el programa se congela o se cierra es porque no ha actualizado bien su IDE con respecto a la API que se ha trabajado el ejercicio, por lo general los ejercicios aquí lo trabajamos en la API 19 y 23 le recomiendo que se documente al respecto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat