PDA

Ver la Versión Completa : [ CONSULTA ] lista con adapter personalizado


mcnudi
26/01/15, 21:19:15
Hola
estoy haciendo un list View para mostrar un lista q contiene 2 campos y un campo imagen. Resulta que con las imágenes cuando llevo unas cuantas cargadas me aparece el error en el log java OutOfMemoryError. Lo estoy haciendo con un adapter personalizado que extiende de baseAdapter. ¿Me podeis ayudar??

os paso el adapter:
public class ItemSitioAdapter extends BaseAdapter {
protected Activity activity;
protected ArrayList<DescrLista> items;
static class ViewHolder
{
TextView nombre;
TextView descripcion;
ImageView imagen;
}
 
public ItemSitioAdapter(Activity activity, ArrayList<DescrLista> items) {
this.activity = activity;
this.items = items;
}
@Override
public int getCount() {
return items.size();
}
@Override
public DescrLista getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@SuppressLint("NewApi")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_ SERVICE);
vi = inflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.nombre = (TextView) vi.findViewById(R.id.nombreI);
holder.imagen = (ImageView) vi.findViewById(R.id.imagenI);
holder.descripcion = (TextView) vi.findViewById(R.id.descripI);
vi.setTag(holder);
}
else{
convertView.getTag();
}
if (items.size()>position) {
DescrLista item = items.get(position);
if (item.getFoto()!=null && !item.getFoto().equals("")){
ImageView image = (ImageView) vi.findViewById(R.id.imagenI);
File fichero = new File(item.getFoto());
if (fichero.exists()){
try{
image.setImageURI(Uri.parse(item.getFoto()));
}catch(OutOfMemoryError e){
}
}
}
if (item.getNombre()!=null && !item.getNombre().equals("")){
TextView nombre = (TextView) vi.findViewById(R.id.nombreI);
nombre.setText(item.getNombre());
}
if (item.getDescripcion()!=null && !item.getDescripcion().equals("")){
TextView descripc = (TextView) vi.findViewById(R.id.descripI);
descripc.setText(item.getDescripcion());
}
}
return vi;
 
}
}