I have this table to sqlite:
JavaScript
x
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:
JavaScript
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;
}
JavaScript
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:
JavaScript
private SeguirManga seguirManga = new SeguirManga();
So, in activity I use this to change value using update method:
JavaScript
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:
JavaScript
dejarDato.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dejarMetodoDaato();
}
});
Class:
JavaScript
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?
Advertisement
Answer
You must specify the id
of the row that you want to update:
JavaScript
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);
}