Good morning have colleagues, I would like to know if anyone has any idea why the records are shown null.
My JSON has data which are the following.
This is the script I'm using to perform the internal SQLite database
public static final String SCRIPT_TABLE_2 = " " +
"create table "+TABLE_2+" " +
"(" +
"id integer primary key autoincrement, " +
"concesionario varchar(75), " +
"cable_instalar varchar(120), " +
"Tipo_Red varchar(45) not null " +
"); ";
These are the methods to register and obtain the records.
public boolean insertSolicitud(ItemSolicitud itemSolicitud){
AD = DB.getWritableDatabase();
boolean result = false;
ContentValues CV = new ContentValues();
CV.put("concesionario", itemSolicitud.getConcesionario());
CV.put("cable_instalar", itemSolicitud.getCable_instalar());
CV.put("Tipo_Red", itemSolicitud.getTipo_Red());
try {
result = AD.insert(DataBase.TABLE_2,null,CV) > 0;
}catch (Exception e){
e.printStackTrace();
}
AD.close();
return result;
}
public ArrayList<ItemSolicitud> getAllSolicitudes(){
ArrayList<ItemSolicitud> lstSlicitud = new ArrayList<ItemSolicitud>();
AD = DB.getWritableDatabase();
Cursor myCursor = AD.query(DataBase.TABLE_2, new String[]{
"id","concesionario","cable_instalar","Tipo_Red"},
null,null,null,null,null);
if (myCursor.moveToFirst()){
do {
lstSlicitud.add(new ItemSolicitud(myCursor.getInt(0),
myCursor.getString(1)));
}while (myCursor.moveToNext());
}
AD.close();
return lstSlicitud;
}
I leave the following classes that complement this activity
my adapter
public class AdapterSolicitud extends BaseAdapter {
protected AppCompatActivity datosActivity;
protected ArrayList<ItemSolicitud> itemSolicitudes;
public AdapterSolicitud (AppCompatActivity datosActivity, ArrayList<ItemSolicitud> itemSolicitudes){
this.datosActivity = datosActivity;
this.itemSolicitudes = itemSolicitudes;
}
@Override
public int getCount() {
return itemSolicitudes.size();
}
@Override
public Object getItem(int i) {
return itemSolicitudes.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View convertView, ViewGroup parent) {
View v = convertView;
if (convertView == null){
LayoutInflater inf = (LayoutInflater)datosActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inf.inflate(R.layout.item_solicitudes, null);
}
ItemSolicitud myItemSolicitudes = itemSolicitudes.get(i);
TextView txtCon, txtCable, txtTipo;
txtCon = (TextView)v.findViewById(R.id.txtCon);
txtCable = (TextView)v.findViewById(R.id.txtCable);
txtTipo = (TextView)v.findViewById(R.id.txtTipo);
txtCon.setText("Concesionario: " + myItemSolicitudes.getConcesionario());
txtCable.setText("Cable a instalar: " + myItemSolicitudes.getCable_instalar());
txtTipo.setText("Tipo de red: " + myItemSolicitudes.getTipo_Red());
return v;
}
}
my builder
public class ItemSolicitud implements Serializable {
int id;
String concesionario, cable_instalar, Tipo_Red;
public ItemSolicitud(int id) {
this.id = id;
}
public ItemSolicitud(int id, String concesionario) {
this.id = id;
this.concesionario = concesionario;
}
public ItemSolicitud(int id, String concesionario, String cable_instalar) {
this.id = id;
this.concesionario = concesionario;
this.cable_instalar = cable_instalar;
}
public ItemSolicitud(int id, String concesionario, String cable_instalar, String tipo_Red) {
this.id = id;
this.concesionario = concesionario;
this.cable_instalar = cable_instalar;
Tipo_Red = tipo_Red;
}
public ItemSolicitud(String concesionario, String cable_instalar, String tipo_Red) {
this.concesionario = concesionario;
this.cable_instalar = cable_instalar;
Tipo_Red = tipo_Red;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getConcesionario() {
return concesionario;
}
public void setConcesionario(String concesionario) {
this.concesionario = concesionario;
}
public String getCable_instalar() {
return cable_instalar;
}
public void setCable_instalar(String cable_instalar) {
this.cable_instalar = cable_instalar;
}
public String getTipo_Red() {
return Tipo_Red;
}
public void setTipo_Red(String tipo_Red) {
Tipo_Red = tipo_Red;
}
}
and the main class
@Override protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_solicitudes);
lstSolicitud = (ListView)findViewById(R.id.lstSolicitudes);
myItemSolicitud = new ArrayList<ItemSolicitud>();
myDaoSolicitud = new DaoSolicitudes(getApplication());
myItemSolicitud = myDaoSolicitud.getAllSolicitudes();
myAdapterSolicitud = new AdapterSolicitud(this, myItemSolicitud);
lstSolicitud.setAdapter(myAdapterSolicitud);
registerForContextMenu(lstSolicitud);
}
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
menu.add(0,0,0, "Actualizar");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case 0:
new SolicitudSegundoplano().execute("");
break;
}
return super.onOptionsItemSelected(item);
}
public void reload(){
myDaoSolicitud = new DaoSolicitudes(getApplicationContext());
myItemSolicitud = myDaoSolicitud.getAllSolicitudes();
myAdapterSolicitud = new AdapterSolicitud(this, myItemSolicitud);
lstSolicitud.setAdapter(myAdapterSolicitud);
}
public ArrayList<ItemSolicitud> LanzarSolicitud(String params){
METHOD_NAME = "getConDetail";
SOAP_ACTION = NAMESPACE + METHOD_NAME;
ArrayList<ItemSolicitud> myArrayWS = new ArrayList<ItemSolicitud>();
try {
request = new SoapObject(NAMESPACE, METHOD_NAME);
concesionario = new PropertyInfo();
concesionario.setName("solicitud");
concesionario.setValue(params);
concesionario.setType(String.class);
request.addProperty(concesionario);
envelo = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelo.dotNet = false;
envelo.setOutputSoapObject(request);
transport = new HttpTransportSE(URL_SERVICE);
transport.call(SOAP_ACTION, envelo);
String resultado = (String) envelo.getResponse();
Type tipo = new TypeToken<ArrayList<ItemSolicitud>>() {}.getType();
Gson convertidoJson = new Gson();
myArrayWS = convertidoJson.fromJson(resultado, tipo);
}catch (Exception e){
e.printStackTrace();
}
return myArrayWS;
}
class SolicitudSegundoplano extends AsyncTask<String,Integer, ArrayList<ItemSolicitud>>{
@Override
protected ArrayList<ItemSolicitud> doInBackground(String... params) {
return LanzarSolicitud(params[0]);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
dialogAsynk = ProgressDialog.show(Solicitudes.this, "", "Cargando...", true);
}
@Override
protected void onPostExecute(ArrayList<ItemSolicitud> itemSolicituds) {
super.onPostExecute(itemSolicituds);
dialogAsynk.dismiss();
Log.d(getClass().getSimpleName(), "Tamaño del arrego: " + itemSolicituds.size());
DaoSolicitudes myDao = new DaoSolicitudes(getApplicationContext());
for (ItemSolicitud solicitud : itemSolicituds) {
if (myDao.insertSolicitud(solicitud) == true){
Crouton.makeText(Solicitudes.this, "Actualizado", Style.INFO).show();
reload();
}else {
Crouton.makeText(Solicitudes.this, "Sin Novedades", Style.INFO).show();
}
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
Crouton.cancelAllCroutons();
}
}
Thank you in advance for your help.