【发布时间】:2021-02-02 13:32:39
【问题描述】:
我有这张表要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);";
这是我获取Update值的方法:
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();
}
}
我在我的活动中添加了一个对象变量:
private SeguirManga seguirManga = new SeguirManga();
因此,在活动中,我使用更新方法来更改值:
private void dejarMetodoDaato(){
PaginasSQL paginasSQL = new PaginasSQL(TMOnlineMangaSeleccion.this);
seguirManga.setValorSeguir(0);
paginasSQL.actualizar(seguirManga);
}
但这不起作用,因为当我按下按钮时:
dejarDato.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dejarMetodoDaato();
}
});
类:
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;
}
}
没有任何反应,因为值始终为 (1) 1。我的代码有什么问题?
【问题讨论】:
-
什么是
seguirManga。它是在哪里定义的? -
是一个对象类。我将添加代码问题
-
因为值一直是 (1) 1 这是什么意思?
seguirManga包含将更新表中行的所有值,但您只设置了seguirManga.setValorSeguir(0);。seguirManga的其他属性值是多少? -
我不需要更新其他属性。只是我需要更新我在问题中显示的值
-
mapaSiguiendo()将使用来自seguirManga的所有属性的值设置所有列,因此您要做的是更新所有列。
标签: java android sqlite android-sqlite