i'm having some problems with a custom BaseAdapter which is showed in a PullToRefreshListView (whitch is an extension from ListView that you can update by pulling the list).
My problem is that when I minimize and later I resume my app, the ListView is not showing nothing... I had a breakpoint at my last line of code and my method getCount from my adapter return always more than zero, but getView still not being called...
Adapter:
package extrasoftware.triptreat.Adapters;
/**
* Creado pormsolla on 7/01/14.
*/
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Point;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.GregorianCalendar;
import extrasoftware.triptreat.Clases.ImageLoader;
import extrasoftware.triptreat.Clases.ImageViewEscalable;
import extrasoftware.triptreat.Clases.Ofertas.Oferta;
import extrasoftware.triptreat.Clases.Ofertas.OfertasLlenar_R;
import extrasoftware.triptreat.Comun.Constantes;
import extrasoftware.triptreat.Comun.Datos;
import extrasoftware.triptreat.Comun.General;
import extrasoftware.triptreat.OfertasActivity;
import extrasoftware.triptreat.OfertasDetalleActivity;
import extrasoftware.triptreat.R;
public class OfertasAdapter extends BaseAdapter {
private Activity activity;
private OfertasLlenar_R oRespuesta;
private OfertasLlenar_R oRespuestaTotal;
private static LayoutInflater inflater = null;
private ImageLoader imageLoader;
public static boolean abrirVentana = true;
//public static boolean okComentario = true;
public OfertasAdapter(Activity a, OfertasLlenar_R d, OfertasLlenar_R d_total) {
activity = a;
oRespuesta = d;
oRespuestaTotal = d_total;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Display display = activity.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
imageLoader = new ImageLoader(activity.getApplicationContext(), R.drawable.sinimagen, Constantes.ImageLoaderTipo.Lista);
}
public int getCount() {
return oRespuesta.datos.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
View vista = convertView;
try{
vista = inflater.inflate(R.layout.ofertas_row, parent, false);
final Oferta oferta = oRespuesta.datos.get(position);
final TextView txtTitulo = (TextView)vista.findViewById(R.id.txtTitulo);
final TextView txtNegocio = (TextView)vista.findViewById(R.id.txtNegocio);
final ImageViewEscalable imgOferta = (ImageViewEscalable)vista.findViewById(R.id.imgOferta);
final ImageView imgEstado = (ImageView)vista.findViewById(R.id.imgEstado);
imgOferta.setImageBitmap(null);
String urlImagen = General.ObtenerRutaImagen(Constantes.Ventanas_Origen.Ofertas, oRespuesta.oferta_raiz + "/" + oferta.oferta_imagen, activity);
imageLoader.DisplayImage(urlImagen, imgOferta);
txtNegocio.setText(oferta.negocio_nombre);
txtTitulo.setText(oferta.titulo);
GregorianCalendar calendar = new GregorianCalendar();
final boolean caducada = calendar.getTime().after(oferta.valido_hasta_F);
if(caducada){
imgEstado.setImageResource(R.drawable.caducada);
}
else if(oferta.estado == Constantes.Ofertas_Estados.Aceptada){
imgEstado.setImageResource(R.drawable.aceptada);
}
else if(oferta.estado == Constantes.Ofertas_Estados.Usada){
imgEstado.setImageResource(R.drawable.usada);
}
else{
imgEstado.setVisibility(View.GONE);
}
vista.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(final View v) {
final CharSequence[]
options = {
activity.getResources().getString(R.string.borrar),
activity.getResources().getString(R.string.excluir),
activity.getResources().getString(R.string.cancelar)
};
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals(activity.getResources().getString(R.string.borrar))) {
OfertasActivity.ConfirmarBorrar(v, oferta.oferta_id);
}
else if (options[item].equals(activity.getResources().getString(R.string.excluir))) {
OfertasActivity.ConfirmarExcluir(v, oferta.negocio_id, oferta.negocio_nombre);
}
else if (options[item].equals(activity.getResources().getString(R.string.cancelar))) {
dialog.dismiss();
}
}
});
builder.show();
return true;
}
});
// Click event for single list row
vista.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try{
if(abrirVentana && !caducada){
abrirVentana = false;
General.MostrarCargando(activity);
Datos.setCodigosFiltrados(activity.getApplicationContext(), oRespuesta);
Intent detalleIntent = new Intent(activity.getApplicationContext(), OfertasDetalleActivity.class);
detalleIntent.putExtra(Constantes.Parametros_Extra.Indice, String.valueOf(General.ObtenerIndiceOfertaEnLista(oRespuesta.datos, oferta.oferta_id)));
activity.startActivity(detalleIntent);
}
}
catch (Exception e){
e.printStackTrace();
}
}
});
}
catch(Exception e){
e.printStackTrace();
}
return vista;
}
public void setDatos(OfertasLlenar_R oRespuestaFiltro){
oRespuesta = oRespuestaFiltro;
this.notifyDataSetChanged();
}
}
Thanks!