I have this table to sqlite:
public static final String TABLA_PARA_SEGUIR =
"CREATE TABLE " + TABLA_SEGUIR + "(" +
ID_ELEMENTO + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
NOMBRE_MANGA + " TEXT NOT NULL, " +
URL_MANGA + " TEXT NOT NULL, " +
URL_IMAGEN + " TEXT NOT NULL, " +
CONTADOR_CAPITULOS + " TEXT NOT NULL, " +
BIT_SEGUIR_NO + " INTEGER);";
And this is my method to Update
value:
private ContentValues mapaSiguiendo(SeguirManga sm){
ContentValues cv = new ContentValues();
cv.put(PaginasTabla.NOMBRE_MANGA, sm.getNombre());
cv.put(PaginasTabla.URL_MANGA, sm.getUrl());
cv.put(PaginasTabla.URL_IMAGEN, sm.getUrlImagen());
cv.put(PaginasTabla.CONTADOR_CAPITULOS, sm.getContador());
cv.put(PaginasTabla.BIT_SEGUIR_NO, sm.getValorSeguir());
return cv;
}
public void actualizar(SeguirManga sm, Context actividad) {
try{
this.openWriteableDB();
ContentValues cv = new ContentValues();
cv.put(PaginasTabla.BIT_SEGUIR_NO, sm.getValorSeguir());
db.update(PaginasTabla.TABLA_SEGUIR, cv, PaginasTabla.ID_ELEMENTO + " = ?", new String[]{String.valueOf(sm.getId())});
db.close();
Toast.makeText(actividad, "Modificado", Toast.LENGTH_SHORT).show();
}catch(Exception sqlException){
Toast.makeText(actividad, "Error: " + sqlException.getMessage(), Toast.LENGTH_SHORT).show();
}
}
And i add a object variable in my activity:
private SeguirManga seguirManga = new SeguirManga();
So, in activity I use this to change value using update method:
private void dejarMetodoDaato(){
PaginasSQL paginasSQL = new PaginasSQL(TMOnlineMangaSeleccion.this);
seguirManga.setValorSeguir(0);
paginasSQL.actualizar(seguirManga);
}
But this not works because when I press the button:
dejarDato.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dejarMetodoDaato();
}
});
Class:
public class SeguirManga {
private int id;
private String nombre;
private String url;
private String urlImagen;
private String contador;
private int valorSeguir;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getContador() {
return contador;
}
public void setContador(String contador) {
this.contador = contador;
}
public int getValorSeguir() {
return valorSeguir;
}
public void setValorSeguir(int valorSeguir) {
this.valorSeguir = valorSeguir;
}
public String getUrlImagen() {
return urlImagen;
}
public void setUrlImagen(String urlImagen) {
this.urlImagen = urlImagen;
}
public SeguirManga(){}
public SeguirManga(int id, String nombre, String url, String urlImagen,String contador, int valorSeguir) {
this.id = id;
this.nombre = nombre;
this.url = url;
this.urlImagen = urlImagen;
this.contador = contador;
this.valorSeguir = valorSeguir;
}
}
Nothing happens because the value is (1) one all the time. What's wrong with my code?
You must specify the id
of the row that you want to update:
private void dejarMetodoDaato(){
PaginasSQL paginasSQL = new PaginasSQL(TMOnlineMangaSeleccion.this);
seguirManga.setId(5); // change 5 to the value of the id of the row
seguirManga.setValorSeguir(0);
paginasSQL.actualizar(seguirManga);
}