Je suis nouveau sur Android et Java. J'ai créé une application qui fonctionne bien, sauf que je reçois une exception java.lang.OutOfMemoryError lorsque je fais défiler les listes dans mon application qui s'agrandissent dynamiquement (10 éléments) à chaque fois que je fais défiler jusqu'en bas. Après avoir fait défiler environ 4-5 pages, je reçois cette exception. Est-ce que quelqu'un peut m'aider à résoudre cette exception et me donner quelques conseils pour éviter de telles exceptions.
Mon Adaptateur :
public class LazyAdapter extends BaseAdapter {
private static LayoutInflater inflater = null;
private Activity activity;
public ImageLoader imageLoader;
public static ArrayList values;
private String product_action;
public LazyAdapter(Activity a, ArrayList arg3) {
values = arg3;
activity = a;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return values.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView text;
public ImageView image;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
Product p = values.get(position);
if (convertView == null) {
vi = inflater.inflate(R.layout.feed_items, null);
holder = new ViewHolder();
holder.text = (TextView) vi.findViewById(R.id.label);
;
holder.image = (ImageView) vi.findViewById(R.id.logo);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
if (condition1) {
holder.text.setText(myText);
holder.image.setTag(imageUrl);
imageLoader.DisplayImage(imgURL, activity, holder.image);
} else if (condition2) {
holder.text.setText(myText);
holder.image.setTag(imageUrl);
imageLoader.DisplayImage(imgURL, activity, holder.image);
} else if (condition3) {
holder.text.setText(myText);
holder.image.setTag(imageUrl);
imageLoader.DisplayImage(imgURL), activity,
holder.image);
}
return vi;
}
public void add(Product product) {
values.add(product);
}
}