I have a problem to store a value in my BD
in SQLite
, the other data is saved efficiently but I am missing one that saves it in Null
. This is my table in SQLite
:
//TABLA
public static final String TABLA_SEGUIR = "siguiendo";
//Columnas
public static final String ID_ELEMENTO = "idElementoManga";
public static final String NOMBRE_MANGA = "nombreManga";
public static final String URL_MANGA = "urlManga";
public static final String URL_IMAGEN = "urlImagen";
public static final String CONTADOR_CAPITULOS = "cantidadCapitulos";
public static final String BIT_SEGUIR_NO = "valorSiguiendo";
public static final String TIPO_MANGA = "tipoManga";
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, " +
TIPO_MANGA + " TEXT NOT NULL);";
This is my method to save the data:
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());
cv.put(PaginasTabla.TIPO_MANGA, sm.getTipo());
return cv;
}
public long guardar(SeguirManga sm){
this.openWriteableDB();
long filaID = db.insert(PaginasTabla.TABLA_SEGUIR, null, mapaSiguiendo(sm));
this.closeDB();
return filaID;
}
In my activity I do the following to store the data:
private void seguirMetodoDato(String urlImagen){
PaginasSQL psql = new PaginasSQL(TMOnlineMangaSeleccion.this);
String url = getIntent().getStringExtra("valor");
String tipoManga = getIntent().getStringExtra("tipo");
SeguirManga sm = new SeguirManga();
sm.setNombre(nombreManga);
sm.setUrl(url);
sm.setUrlImagen(urlImagen);
sm.setContador(cont+"");
sm.setValorSeguir(1);
sm.setTipo(tipoManga); //este es el dato que no me almacena
psql.guardar(sm);
}
That data, as you will see, I bring it from another activity and the truth is that if it arrives:
I went to my save method and well, it comes through fine too:
In my adapter I try to show it but it returns as null:
@Override
public View getView(int position, View convertView, ViewGroup viewGroup){
View rowView = convertView;
if(convertView == null){
LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = layoutInflater.inflate(R.layout.tmonline_lista_text_view, viewGroup, false);
}
TextView nombreManga = rowView.findViewById(R.id.tvMangaLista);
ImageView caratula = rowView.findViewById(R.id.ivListaMangas);
SeguirManga sm = this.seguirMangaArrayList.get(position);
Picasso.get().load(sm.getUrlImagen()).into(caratula);
nombreManga.setText(sm.getNombre() + "/" + sm.getTipo());
return rowView;
}
In short, for some reason it saves me as null. Does anyone know why?
UPDATE:
public class SeguirManga {
private int id;
private String nombre;
private String url;
private String urlImagen;
private String contador;
private int valorSeguir;
private String tipo;
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 String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public SeguirManga(){}
public SeguirManga(int id, String nombre, String url, String urlImagen,String contador, int valorSeguir, String tipo) {
this.id = id;
this.nombre = nombre;
this.url = url;
this.urlImagen = urlImagen;
this.contador = contador;
this.valorSeguir = valorSeguir;
this.tipo = tipo;
}
}
I see that you get these values supposedly via an Intent.
when debugging you are visualizing that it has a value but when obtaining these values that come from a
Intent
at the end they will have a null value.The reason is that obtaining these values received from a
Intent
, must be done withinonCreate()
yourActivity
:get them and then assign them to your method: