title: Android Gallery's getView() returning incorrect position
body: <p>Thanks for reading!</p>
  
  <p>I am using the Android Gallery with both LayoutParams as MATCH_PARENT to show one full screen image at a time.</p>
  
  <p>Here's my code: </p>
  
  <p>layout.xml</p>
  
  <pre><code>
  &lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent" android:layout_height="fill_parent"&gt;
      &lt;Gallery
          android:id="@+id/gallery" android:layout_width="fill_parent"
          android:layout_height="fill_parent"&gt;
      &lt;/Gallery&gt;
      &lt;TextView android:id="@+id/tvShowText" android:layout_width="wrap_content"
          android:layout_height="wrap_content" android:layout_alignParentBottom="true" /&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>HelloGallery.java</p>
  
  <pre><code>
  package com.android.sagar;
  
  import android.app.Activity;
  import android.content.Context;
  import android.os.Bundle;
  import android.view.View;
  import android.view.ViewGroup;
  import android.view.ViewGroup.LayoutParams;
  import android.widget.AdapterView;
  import android.widget.AdapterView.OnItemClickListener;
  import android.widget.BaseAdapter;
  import android.widget.Gallery;
  import android.widget.ImageView;
  import android.widget.TextView;
  import android.widget.Toast;
  
  public class HelloGallery extends Activity {
  
      TextView tvShowText = null;
  
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          tvShowText = (TextView)findViewById(R.id.tvShowText);
  
          Gallery g = (Gallery) findViewById(R.id.gallery);
          g.setAdapter(new ImageAdapter(this));
  
          g.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView parent, View v, int position, long id) {
                  Toast.makeText(HelloGallery.this, "" + position, Toast.LENGTH_SHORT).show();
              }
          });
      }
  
      public class ImageAdapter extends BaseAdapter {
          int mGalleryItemBackground;
          private Context mContext;
  
          private Integer[] mImageIds = {
                  R.drawable.pic1,
                  R.drawable.pic2,
                  R.drawable.pic3
          };
  
          public ImageAdapter(Context c) {
              mContext = c;
          }
  
          public int getCount() {
              return mImageIds.length;
          }
  
          public Object getItem(int position) {
              return position;
          }
  
          public long getItemId(int position) {
              return position;
          }
  
          public View getView(int position, View convertView, ViewGroup parent) {
              ImageView i = new ImageView(mContext);
  
              tvShowText.setText("ImageCaption for Image No.: "+position);
  
              i.setImageResource(mImageIds[position]);
              i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
              i.setScaleType(ImageView.ScaleType.FIT_XY);
              i.setBackgroundResource(mGalleryItemBackground);
  
              return i;
          }
      }
  }
  </code></pre>
  
  <p>The images show correctly but the caption that I print is off by one or sometimes totally different. :(</p>
  
  <p>I debugged and found that when I swipe once, the getView() gets called multiple times - around 2 to 3 times...and they are all different positions but the image appears to be moving one at a time. :(
  Please help!</p>