I'm trying to delete items from a ListView by keeping the click, which works but when I go out and go back into the activity, I reappear the items I deleted.
I think this happens because I do not delete the element also from the Data Base, since I do not know how to do it . I had something like that but instead of deleting only the selected element, deletes all the elements of the ListView from the DB :
listaFavoritos.setLongClickable(true);
listaFavoritos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
SQLiteDatabase db=conn.getWritableDatabase();
db.rawQuery("DELETE FROM favoritos", null)
listaInfo.remove(i);
adaptador.notifyDataSetChanged();
return true;
}
});
My Data Base class:
public class BaseDeDatos extends SQLiteOpenHelper {
public BaseDeDatos(Context context) {
super(context, "libros.db", null, 2);
}
private static final String tabla_favoritos = "CREATE TABLE IF NOT EXISTS favoritos(titulo text)";
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS libros (Id text, Titulo text, Autor text, Sinopsis text, FechaDePublicacion text, Editorial text, CantidadDePaginas text, Idioma text, Categorias text)");
db.execSQL("insert into libros values('1', 'El Resplandor', 'Stephen King', '¿Qué ha sido de Danny Torrance? Descúbrelo al final de este volumen, que incluye el inicio de Doctor Sueño, la continuación de El resplandor. REDRUM. Esa es la palabra que Danny había visto en el espejo. Y, aunque no sabía leer, entendió que era un mensaje de horror. Tenía cinco años, y a esa edad pocos niños son conscientes de que los espejos invierten las imágenes, y menos aún diferencian entre realidad y fantasía. Pero Danny tenía pruebas de que sus fantasías relacionadas con el resplandor del espejo acabarían cumpliéndose.', '28-01-1977', 'Doubleday', '447', 'Ingles', 'Terror'), ('2', 'Forbidden', 'Tabitha Suzuma', 'No podemos. Si empezamos, ¿cómo vamos a pararlo? Lochan y Maya siempre se han sentido más amigos que hermanos. Ante la incapacidad de cuidarlos de su madre alcohólica y la ausencia de un padre que los abandonó, los dos jóvenes deben hacerse cargo de sus tres hermanos menores y esconder su situación a los servicios sociales, porque ninguno de los dos es mayor de edad. La responsabilidad que comparten y las dificultades a las que se enfrentan les unen, hasta empujarlos a enamorarse. Ambos saben que su relación está mal y que no debe continuar, pero al mismo tiempo no pueden controlar sus emociones y la atracción que los domina.', '10-05-2010', 'OZ', '387', 'Español', 'Ficción'),('3', 'Cazadores de Sombras', 'Harald Zwart', 'En la ciudad de Nueva York, una adolescente aparentemente común llamada Clary Fray descubre que ella desciende de una línea de guerreros, mitad ángeles, quienes protegen a la humanidad de los demonios. Después de que su madre desaparece, Clary une fuerzas con un grupo de cazadores de sombras e ingresa al Inframundo, un sitio peligroso y alterno lleno de demonios, brujos, vampiros, hombres lobo y criaturas sobrenaturales.', '22-07-2013', 'Simon & Schuster', '948', 'Español', 'Ficción'),('4', 'Beautiful Disaster', 'Jamie McGuire', 'La chica buena Abby no bebe, no se mete en líos y trabaja muy duro. Cree que ha enterrado su oscuro pasado, pero cuando llega a la universidad, un rompecorazones conocido por sis ligues de una noche pone en peligro su sueño de una nueva vida. El chico malo Travis Maddox , sexy, musculoso y cubierto de tatuajes, es justamente el tipo de chico que le atrae a Abby, justamente lo que quiere evitar. Dedica sus noches a ganar dinero en un club de lucha itinerante y sus dias a ser el estudiante ejemplar y el seductor mas popular del campus. Toda una mezcla explosiva. Intrigado por el rechazo de Abby, Travis intenta colarse en su vida proponiendole una apuesta que trastocará sus mundos y lo cambiará todo.', '26-05-2011', 'Simon & Schuster', '567', 'Ingles', 'Romance'),('5', 'Hush Hush', 'Becca Fitzpatrick', 'Cuando Patch se convierte en su nuevo compañero de laboratorio de biología, Nora siente a la vez atracción y repulsión hacia este extraño personaje que parece tener acceso a sus pensamientos. Luego se entera de que Patch es un ángel caído que quiere convertirse en humano.', '13-10-2009', 'Ediciones B', '647', 'Ingles', 'Romance'),('6', 'Los juegos del hambre', 'Collins Suzanne', 'En lo que alguna vez fue Norteamérica, la Capital de Panem mantiene sus 12 distritos obligándolos a seleccionar a un niño y a una niña, llamados Tributos, a competir en un evento televisado nacionalmente llamados Juegos del Hambre. Cada ciudadano debe ver pelear a muerte a los jóvenes. El Trbuto del Distrito 12, Katniss Everdeen sólo confía en sus habilidades de caza y buenos instintos en una arena en donde debe sobrevivir contra la humanidad.', '14-09-2008', 'Rba-Molino', '847', 'Español', 'Fantasía'),('7', 'Misery', 'Stephen King', 'Un autor se recupera de un accidente y es cuidado por una admiradora que le insiste escribir un libro sólo para ella.', '08-06-1987', 'Viking Press', '320', 'Ingles', 'Terror'),('8', 'Oscuros', 'Kate Lauren', 'La historia de Daniel y Luce, dos almas predestinadas a encontrarse y condenadas a perderse... Helstone, Inglaterra, 1854. Es noche cerrada y dos jóvenes conversan en una remota casa de campo. Se sienten irresistiblemente atraídos el uno por el otro, pero él insiste en que no pueden estar juntos.', '08-12-2009', 'Penguin Random House', '416', 'Ingles', 'Drama'),('9', 'Eleanor & Park', 'Rowell Rainbow', 'Dos chicos de un colegio, que se conocen por una situación fortuita en el autobús escolar, haciendo que de poco a poco su amistad vaya evolucionando en algo más. Pero no todo en la vida es fácil, al final, los dos protagonistas tendrán que luchar por mantenerse juntos, he impedir que el padrastro de Eleanor los separen para siempre.', '07-10-2012', 'Aguilar', '333', 'Ingles', 'Romance'),('10','El amante japones', 'Isabel Allende', 'La historia de amor entre la joven Alma Belasco y el jardinero japonés Ichimei conduce al lector por un recorrido a través de diversos escenarios que van desde la Polonia de la Segunda Guerra Mundial hasta el San Francisco de nuestros días «A los veintidós años, sospechando que tenían el tiempo contado, Ichimei y Alma se atragantaron de amor para consumirlo entero, pero mientras más intentaban agotarlo, más imprudente era el deseo, y quien diga que todo fuego se apaga solo tarde o temprano, se equivoca: hay pasiones que son incendios hasta que las ahoga el destino de un zarpazo y aun así quedan brasas calientes listas para arder apenas se les da oxígeno.', '22-05-2015', 'Plaza & Janés', '725', 'Español', 'Drama') ");
db.execSQL(tabla_favoritos);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS libros");
db.execSQL("CREATE TABLE IF NOT EXISTS libros (Id text, Titulo text, Autor text, Sinopsis text, FechaDePublicacion text, Editorial text, CantidadDePaginas text, Idioma text, Categorias text)");
db.execSQL("insert into libros values('1', 'El Resplandor', 'Stephen King', '¿Qué ha sido de Danny Torrance? Descúbrelo al final de este volumen, que incluye el inicio de Doctor Sueño, la continuación de El resplandor. REDRUM. Esa es la palabra que Danny había visto en el espejo. Y, aunque no sabía leer, entendió que era un mensaje de horror. Tenía cinco años, y a esa edad pocos niños son conscientes de que los espejos invierten las imágenes, y menos aún diferencian entre realidad y fantasía. Pero Danny tenía pruebas de que sus fantasías relacionadas con el resplandor del espejo acabarían cumpliéndose.', '28-01-1977', 'Doubleday', '447', 'Ingles', 'Terror'), ('2', 'Forbidden', 'Tabitha Suzuma', 'No podemos. Si empezamos, ¿cómo vamos a pararlo? Lochan y Maya siempre se han sentido más amigos que hermanos. Ante la incapacidad de cuidarlos de su madre alcohólica y la ausencia de un padre que los abandonó, los dos jóvenes deben hacerse cargo de sus tres hermanos menores y esconder su situación a los servicios sociales, porque ninguno de los dos es mayor de edad. La responsabilidad que comparten y las dificultades a las que se enfrentan les unen, hasta empujarlos a enamorarse. Ambos saben que su relación está mal y que no debe continuar, pero al mismo tiempo no pueden controlar sus emociones y la atracción que los domina.', '10-05-2010', 'OZ', '387', 'Español', 'Ficción'),('3', 'Cazadores de Sombras', 'Harald Zwart', 'En la ciudad de Nueva York, una adolescente aparentemente común llamada Clary Fray descubre que ella desciende de una línea de guerreros, mitad ángeles, quienes protegen a la humanidad de los demonios. Después de que su madre desaparece, Clary une fuerzas con un grupo de cazadores de sombras e ingresa al Inframundo, un sitio peligroso y alterno lleno de demonios, brujos, vampiros, hombres lobo y criaturas sobrenaturales.', '22-07-2013', 'Simon & Schuster', '948', 'Español', 'Ficción'),('4', 'Beautiful Disaster', 'Jamie McGuire', 'La chica buena Abby no bebe, no se mete en líos y trabaja muy duro. Cree que ha enterrado su oscuro pasado, pero cuando llega a la universidad, un rompecorazones conocido por sis ligues de una noche pone en peligro su sueño de una nueva vida. El chico malo Travis Maddox , sexy, musculoso y cubierto de tatuajes, es justamente el tipo de chico que le atrae a Abby, justamente lo que quiere evitar. Dedica sus noches a ganar dinero en un club de lucha itinerante y sus dias a ser el estudiante ejemplar y el seductor mas popular del campus. Toda una mezcla explosiva. Intrigado por el rechazo de Abby, Travis intenta colarse en su vida proponiendole una apuesta que trastocará sus mundos y lo cambiará todo.', '26-05-2011', 'Simon & Schuster', '567', 'Ingles', 'Romance'),('5', 'Hush Hush', 'Becca Fitzpatrick', 'Cuando Patch se convierte en su nuevo compañero de laboratorio de biología, Nora siente a la vez atracción y repulsión hacia este extraño personaje que parece tener acceso a sus pensamientos. Luego se entera de que Patch es un ángel caído que quiere convertirse en humano.', '13-10-2009', 'Ediciones B', '647', 'Ingles', 'Romance'),('6', 'Los juegos del hambre', 'Collins Suzanne', 'En lo que alguna vez fue Norteamérica, la Capital de Panem mantiene sus 12 distritos obligándolos a seleccionar a un niño y a una niña, llamados Tributos, a competir en un evento televisado nacionalmente llamados Juegos del Hambre. Cada ciudadano debe ver pelear a muerte a los jóvenes. El Trbuto del Distrito 12, Katniss Everdeen sólo confía en sus habilidades de caza y buenos instintos en una arena en donde debe sobrevivir contra la humanidad.', '14-09-2008', 'Rba-Molino', '847', 'Español', 'Fantasía'),('7', 'Misery', 'Stephen King', 'Un autor se recupera de un accidente y es cuidado por una admiradora que le insiste escribir un libro sólo para ella.', '08-06-1987', 'Viking Press', '320', 'Ingles', 'Terror'),('8', 'Oscuros', 'Kate Lauren', 'La historia de Daniel y Luce, dos almas predestinadas a encontrarse y condenadas a perderse... Helstone, Inglaterra, 1854. Es noche cerrada y dos jóvenes conversan en una remota casa de campo. Se sienten irresistiblemente atraídos el uno por el otro, pero él insiste en que no pueden estar juntos.', '08-12-2009', 'Penguin Random House', '416', 'Ingles', 'Drama'),('9', 'Eleanor & Park', 'Rowell Rainbow', 'Dos chicos de un colegio, que se conocen por una situación fortuita en el autobús escolar, haciendo que de poco a poco su amistad vaya evolucionando en algo más. Pero no todo en la vida es fácil, al final, los dos protagonistas tendrán que luchar por mantenerse juntos, he impedir que el padrastro de Eleanor los separen para siempre.', '07-10-2012', 'Aguilar', '333', 'Ingles', 'Romance'),('10','El amante japones', 'Isabel Allende', 'La historia de amor entre la joven Alma Belasco y el jardinero japonés Ichimei conduce al lector por un recorrido a través de diversos escenarios que van desde la Polonia de la Segunda Guerra Mundial hasta el San Francisco de nuestros días «A los veintidós años, sospechando que tenían el tiempo contado, Ichimei y Alma se atragantaron de amor para consumirlo entero, pero mientras más intentaban agotarlo, más imprudente era el deseo, y quien diga que todo fuego se apaga solo tarde o temprano, se equivoca: hay pasiones que son incendios hasta que las ahoga el destino de un zarpazo y aun así quedan brasas calientes listas para arder apenas se les da oxígeno.', '22-05-2015', 'Plaza & Janés', '725', 'Español', 'Drama') ");
db.execSQL(tabla_favoritos);
}
public void insertarLibro(String titulo) {
SQLiteDatabase bd = getWritableDatabase();
if(bd != null){
bd.execSQL("INSERT INTO favoritos VALUES('"+titulo+"')");
bd.close();
}
}
My complete class where I delete the ListView element:
public class ListaFavoritos extends AppCompatActivity implements ListView.OnItemClickListener {
ListView listaFavoritos;
ArrayList<String> listaInfo;
private ArrayAdapter<String> adaptador;
ArrayList<Favoritos> listaLibros;
BaseDeDatos conn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.favoritos);
conn = new BaseDeDatos(this);
listaFavoritos = findViewById(R.id.lvFavoritos);
consultarFav();
listaFavoritos.setLongClickable(true);
listaFavoritos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
SQLiteDatabase db=conn.getWritableDatabase();
db.rawQuery("DELETE FROM favoritos", null)
listaInfo.remove(i);
adaptador.notifyDataSetChanged();
return true;
}
});
adaptador = new ArrayAdapter(this,android.R.layout.simple_list_item_1,listaInfo);
listaFavoritos.setOnItemClickListener(this);
listaFavoritos.setAdapter(adaptador);
}
private void consultarFav() {
SQLiteDatabase db=conn.getReadableDatabase();
Favoritos fav = null;
listaLibros = new ArrayList<Favoritos>();
Cursor cursor=db.rawQuery("SELECT * FROM favoritos" ,null );
while (cursor.moveToNext()) {
fav = new Favoritos();
fav.setTitulo(cursor.getString(0));
listaLibros.add(fav);
}
obtenerLista();
}
private void obtenerLista() {
listaInfo = new ArrayList<String>();
for (int i=0; i<listaLibros.size();i++){
listaInfo.add(listaLibros.get(i).getTitulo()+"");
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
}