Recurso que utilice Cursor
Esto es lo que agregamos
public void alta(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
Cursor fila = bd.rawQuery("select * from votantes where dni=" + dni, null);
if(!fila.moveToFirst()) { //devuelve true o false
ContentValues registro = new ContentValues(); //es una clase para guardar datos
registro.put("dni", dni);
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
bd.insert("votantes", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
Toast.makeText(this, "Se cargaron los datos de la persona",
Toast.LENGTH_SHORT).show();
}
else{
bd.close();
Toast.makeText(this, "La persona ya existe", Toast.LENGTH_SHORT).show();
}
}
public void inicio(View view){
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
fila = bd.rawQuery(
"select * from votantes order by dni asc ", null);
if (fila.moveToFirst()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "No hay registrados" ,
Toast.LENGTH_SHORT).show();
bd.close();
}
public void anterior(View view){
try {
if (!fila.isFirst()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
fila.moveToPrevious();
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "Llego al principio de la tabla",
Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
public void siguiente(View view){
try {
if (!fila.isLast()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
fila.moveToNext();
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "Llego al final de la tabla",
Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
public void fin(View view){
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
Cursor fila = bd.rawQuery(
"select * from votantes order by dni asc", null);
if (fila.moveToLast()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "No hay registrados" ,
Toast.LENGTH_SHORT).show();
bd.close();
}
public void onReset(View view){
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
}
Es muy importante agregar el private Cursor fila, para que funcione el "Anterior" y "Siguiente"
private Cursor fila;
A continuación el código completo que también se lo pueden descargar desde github
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.tatoado.sqlite2.AdminSQLiteOpenHelper;
import com.tatoado.sqlite2.R;
import java.sql.SQLException;
public class MyActivity extends Activity {
private EditText et1, et2, et3, et4;
private Cursor fila;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
et1 = (EditText) findViewById(R.id.et_dni);
et2 = (EditText) findViewById(R.id.et_nombreyapellido);
et3 = (EditText) findViewById(R.id.et_colegio);
et4 = (EditText) findViewById(R.id.et_mesa);
}
public void alta(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
Cursor fila = bd.rawQuery("select * from votantes where dni=" + dni, null);
if(!fila.moveToFirst()) { //devuelve true o false
ContentValues registro = new ContentValues(); //es una clase para guardar datos
registro.put("dni", dni);
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
bd.insert("votantes", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
Toast.makeText(this, "Se cargaron los datos de la persona",
Toast.LENGTH_SHORT).show();
}
else{
bd.close();
Toast.makeText(this, "La persona ya existe", Toast.LENGTH_SHORT).show();
}
}
public void consulta(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase(); //Create and/or open a database that will be used for reading and writing.
String dni = et1.getText().toString();
Cursor fila = bd.rawQuery( //devuelve 0 o 1 fila //es una consulta
"select nombre,colegio,nromesa from votantes where dni=" + dni, null);
if (fila.moveToFirst()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
et2.setText(fila.getString(0));
et3.setText(fila.getString(1));
et4.setText(fila.getString(2));
} else
Toast.makeText(this, "No existe una persona con dicho dni" ,
Toast.LENGTH_SHORT).show();
bd.close();
}
public void baja(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
int cant = bd.delete("votantes", "dni=" + dni, null); // (votantes es la nombre de la tabla, condición)
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
if (cant == 1)
Toast.makeText(this, "Se borró la persona con dicho documento",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "No existe una persona con dicho documento",
Toast.LENGTH_SHORT).show();
}
public void modificacion(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
ContentValues registro = new ContentValues();
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
int cant = bd.update("votantes", registro, "dni=" + dni, null);
bd.close();
if (cant == 1)
Toast.makeText(this, "se modificaron los datos", Toast.LENGTH_SHORT)
.show();
else
Toast.makeText(this, "no existe una persona con dicho documento",
Toast.LENGTH_SHORT).show();
}
public void inicio(View view){
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
fila = bd.rawQuery(
"select * from votantes order by dni asc ", null);
if (fila.moveToFirst()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "No hay registrados" ,
Toast.LENGTH_SHORT).show();
bd.close();
}
public void anterior(View view){
try {
if (!fila.isFirst()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
fila.moveToPrevious();
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "Llego al principio de la tabla",
Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
public void siguiente(View view){
try {
if (!fila.isLast()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
fila.moveToNext();
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "Llego al final de la tabla",
Toast.LENGTH_SHORT).show();
}catch (Exception e){
e.printStackTrace();
}
}
public void fin(View view){
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
Cursor fila = bd.rawQuery(
"select * from votantes order by dni asc ", null);
if (fila.moveToLast()) { //si ha devuelto 1 fila, vamos al primero (que es el unico)
et1.setText(fila.getString(0));
et2.setText(fila.getString(1));
et3.setText(fila.getString(2));
et4.setText(fila.getString(3));
} else
Toast.makeText(this, "No hay registrados" ,
Toast.LENGTH_SHORT).show();
bd.close();
}
public void onReset(View view){
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
}
}
En este ejemplo los botones estan enlazados desde el xml con el atributo android:onClick:"nombreDeLaFuncion"
Por ejemplo:
el boton alta llamado btn_alta
tiene un atributo llamado
android:onClick="alta"
activity_my.xml
<LinearLayout
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:orientation="vertical"
tools:context=".MyActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="dni"
android:id="@+id/textView" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_dni" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="nombre y apellido"
android:id="@+id/textView2" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_nombreyapellido" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="nombre del colegio"
android:id="@+id/textView3" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_colegio" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="numero de mesa"
android:id="@+id/textView4" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_mesa" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Alta"
android:id="@+id/btn_alta"
android:onClick="alta"
android:layout_weight="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Baja"
android:id="@+id/btn_baja"
android:onClick="baja"
android:layout_weight="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Cons"
android:id="@+id/btn_consultar"
android:onClick="consulta"
android:layout_weight="1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Modif"
android:id="@+id/btn_modificar"
android:onClick="modificacion"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Inici"
android:id="@+id/btn_inicio"
android:layout_weight="1"
android:onClick="inicio" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Ant"
android:id="@+id/btn_anterior"
android:layout_weight="1"
android:onClick="anterior" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Sig"
android:id="@+id/btn_siguiente"
android:layout_weight="1"
android:onClick="siguiente" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Fin"
android:id="@+id/btn_fin"
android:layout_weight="1"
android:onClick="fin" />
</LinearLayout>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Reset Info"
android:id="@+id/button"
android:onClick="onReset" />
</LinearLayout>