title: Adapter is returning the same item
body: <p>I am using a ListView to display items in it, this is the layout of the cells:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:weightSum="1"&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textAppearance="?android:attr/textAppearanceMedium"
      android:text="@string/lon"
      android:id="@+id/textView5"
  
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" /&gt;
  
  &lt;ImageView
      android:layout_width="80dp"
      android:layout_height="80dp"
      android:id="@+id/foto"
      android:layout_alignParentTop="true" /&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textAppearance="?android:attr/textAppearanceMedium"
      android:text="@string/lat"
      android:id="@+id/textView6"
      android:layout_alignParentTop="true"
      android:layout_alignParentEnd="true" /&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textAppearance="?android:attr/textAppearanceSmall"
      android:text="Small Text"
      android:id="@+id/textlon"
      android:layout_alignBottom="@+id/foto"
      android:layout_centerHorizontal="true" /&gt;
  
  &lt;TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textAppearance="?android:attr/textAppearanceSmall"
      android:text="Small Text"
      android:id="@+id/textlat"
      android:layout_alignTop="@+id/textlon"
      android:layout_alignParentEnd="true" /&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>Like every ListView, it needs an adapter:</p>
  
  <pre><code>public class FotoAdapter extends BaseAdapter {
  private ArrayList&lt;BeanFotos&gt; fotos;
  private LayoutInflater inflater=null;
  Context c;
  
  public FotoAdapter(Context c, ArrayList&lt;BeanFotos&gt; fotos){
      this.fotos=fotos;
      inflater=LayoutInflater.from(c);
      this.c=c;
  
  }
  @Override
  public int getCount() {
  //this returns the proper size of the array, if I have 3 photos it returns 3
      Log.i("David", "In adapter, the size of the array is: "+fotos.size());
      return fotos.size();
  }
  
  @Override
  public Object getItem(int position) {
  //this is never called
      Log.i("David", "returning item "+position);
      return fotos.get(position);
  }
  
  @Override
  public long getItemId(int position) {
      return position;
  }
  
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
      ViewHolder holder;
      if (convertView == null) {
          //This returns 0 always
          Log.i("David", "returning position "+position);
          int bmWidth=fotos.get(position).getFoto().getWidth();
          int bmHeight=fotos.get(position).getFoto().getHeight();
          int ivWidth;
          int ivHeigth;
          int new_width;
          int new_height;
          convertView=inflater.inflate(R.layout.foto_layout, null);
          holder=new ViewHolder();
          holder.lat=(TextView)convertView.findViewById(R.id.textlat);
          holder.lon=(TextView)convertView.findViewById(R.id.textlon);
          holder.foto=(ImageView)convertView.findViewById(R.id.foto);
          ivWidth=dpToPx(80);
          ivHeigth=dpToPx(80);
          new_width=ivWidth;
          new_height = (int) Math.floor((double) bmHeight *( (double) new_width / (double) bmWidth));
          Bitmap newbitMap = Bitmap.createScaledBitmap(fotos.get(position).getFoto(), new_width, new_height, true);
          holder.lat.setText(fotos.get(position).getLatitud().toString());
          holder.lon.setText(fotos.get(position).getLongitud().toString());
  
          holder.foto.setImageBitmap(newbitMap);
          convertView.setTag(holder);
      }else{
          holder = (ViewHolder) convertView.getTag();
      }
      return convertView;
  }
  
  private int dpToPx(int dp)
  {
      float density = c.getResources().getDisplayMetrics().density;
      return Math.round((float)dp * density);
  }
  static class ViewHolder {
      public TextView lat;
      public TextView lon;
      public ImageView foto;
  }
  }
  </code></pre>
  
  <p>If i set a debug point where the photos are taken, I can see the different photographs I have taken, but in the ListView it displays the same photo (the first one). If I set a debug point in the adapter, the array that stores the object containing the photographs has the proper size, and the photographs stored are different...but the list view shows the same photograph always, despite it shows the proper number of rows.</p>
  
  <p>Why is this happening? how can I fix it? Any help?</p>
  
  <p>Thank you.</p>