title: Duplicated entries in ListView
body: <p>I get duplicated items in a ListView. Scrolling back and down sometimes changes the item order.
  I googled and found many threads reporting this bug, but none of them helped me in fixing my issue.</p>
  
  <p>Here is my code:</p>
  
  <p>Activity:</p>
  
  <pre><code>package com.github.progval.SeenDroid;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import com.github.progval.SeenDroid.lib.Connection;
  import com.github.progval.SeenDroid.lib.Message;
  import com.github.progval.SeenDroid.lib.MessageFetcher;
  import com.github.progval.SeenDroid.lib.Query.ParserException;
  
  import android.app.Activity;
  import android.app.ListActivity;
  import android.content.SharedPreferences;
  import android.os.Bundle;
  
  public class ShowUserActivity extends ListActivity {
      private Connection connection;
  
      public ArrayList&lt;Message&gt; listMessages = new ArrayList&lt;Message&gt;();
      public MessageAdapter adapter;
  
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.profile);
          this.connection = new Connection();
          this.setTitle(R.string.homefeed_title);
  
  
          this.listMessages = new MessageFetcher(this.connection).fetchUser();
          this.bindUi();
      }
  
      private void bindUi() {
          this.adapter = new MessageAdapter(this, this.listMessages);
          this.setListAdapter(adapter);
  
          // TODO Bind buttons
      }
  }
  </code></pre>
  
  <p>MessageAdapter:</p>
  
  <pre><code>package com.github.progval.SeenDroid;
  
  import java.util.ArrayList;
  import java.util.List;
  import java.util.zip.Inflater;
  
  import com.github.progval.SeenDroid.lib.Message;
  
  import android.content.Context;
  import android.text.Layout;
  import android.util.Log;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.webkit.WebView;
  import android.widget.ArrayAdapter;
  import android.widget.BaseAdapter;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  
  public class MessageAdapter extends BaseAdapter {
      private Context context;
      private List&lt;Message&gt; items = new ArrayList&lt;Message&gt;();
      private int lastPosition = 0;
  
      public MessageAdapter(Context context, List&lt;Message&gt; items) {
          super();
          this.context = context;
          this.items = items;
      }
  
      public View getView(int position, View convertView, ViewGroup parent) {
  
          if (null == convertView) {
              LinearLayout view;
              view = (LinearLayout) LinearLayout.inflate(this.context, R.layout.message, null);
              Log.d("SeenDroid", String.format("Get view %d", position));
              TextView title = new TextView(view.getContext());
              title.setText(this.items.get(position).getTitle());
              view.addView(title);
              return view;
          } else {
              return convertView;
          }
      }
  
  
      @Override
      public int getCount() {
          return this.items.size();
      }
  
  
      @Override
      public Object getItem(int location) {
          return this.items.get(location);
      }
  
  
      @Override
      public long getItemId(int arg0) {
          return arg0;
      }
  
  
  }
  </code></pre>
  
  <p>By the way, the output is:</p>
  
  <pre><code>D/SeenDroid(30939): Get view 0
  D/SeenDroid(30939): Get view 1
  D/SeenDroid(30939): Get view 2
  D/SeenDroid(30939): Get view 3
  D/SeenDroid(30939): Get view 4
  D/SeenDroid(30939): Get view 5
  D/SeenDroid(30939): Get view 6
  D/SeenDroid(30939): Get view 7
  D/SeenDroid(30939): Get view 8
  D/SeenDroid(30939): Get view 0
  D/SeenDroid(30939): Get view 16
  </code></pre>
  
  <p>Regards,
  ProgVal</p>