title: Adding items to the Adapter breaks onItemClickListener events
body: <p>After re-organizing a custom ListView and Adapter so that it took advantage of a ViewHolder class, the code initially seemed to work. However, when one scrolls down to the bottom and it adds more items to the list, list elements suddenly lose the ability to be clicked. This was not the case prior to using ViewHolder. The custom objects within the list elements function correctly. </p>
  
  <p>the Adapters getView:</p>
  
  <pre><code>public View getView(int position, View convertView, ViewGroup parent) {
  
      ViewHolder holder;
  
      if(convertView == null)
      {
          convertView = View.inflate(this.context, R.layout.company_listing, null);
          Log.d(Cloud.DEBUG_TAG, "Inflating View...");    
          holder = new ViewHolder(convertView, context);
  
          convertView.setTag(holder);
  
      }
      else
      {
          holder = (ViewHolder) convertView.getTag();
      }
  
      holder.populateFrom(companies.get(position),logoDown);
  
      return convertView;
  }
  </code></pre>
  
  <p>The ViewHolder:</p>
  
  <pre><code>class ViewHolder{
  
  ImageView theLogo;
  TextView textName;
  ImageView webButton;
  ImageView phoneButton;
  ImageView favoriteButton;
  Context context;
  Company currentCompany;
  
  
  
  public ViewHolder(View row, Context context){
      theLogo = (ImageView) row.findViewById(R.id.imageLogo);
      textName = (TextView) row.findViewById(R.id.textName);
      webButton = (ImageView) row.findViewById(R.id.imageWeb);
      phoneButton = (ImageView) row.findViewById(R.id.imagePhone);
      favoriteButton = (ImageView) row.findViewById(R.id.imageStar);
  
      theLogo.setImageResource(R.drawable.no_pic);
  
  
      this.context = context;
  
  
  }
  
  public void setIcon(Bitmap icon)
  {
  
      try {
          if(icon == null) {
              theLogo.setImageResource(R.drawable.no_pic);
          } else {
              theLogo.setImageBitmap(icon);
          }
      } catch(Exception e) {}
  
  }
  
  public void populateFrom(Company oneCompany,CachedLogoDownloader logos){
  
      currentCompany = oneCompany;
  
      Bitmap tIcon = logos.getLogo(this);
  
      try {
          if(tIcon == null) {
              theLogo.setImageResource(R.drawable.no_pic);
          } else {
              theLogo.setImageBitmap(tIcon);
          }
      } catch(Exception e) {}
  
  
      //create listener for favorite star icon thingy
      favoriteButton.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
  
          //...code removed...
          }
      });
  
      //set company name
      textName.setText(currentCompany.getName());
  
      //resolve web button visibility
      if(!currentCompany.getWeb().equals("")) {
          webButton.setVisibility(View.VISIBLE);
          webButton.setOnClickListener(new OnClickListener() {
              public void onClick(View arg0) {
                  //...code removed...
              }
          });
      }
      else {
          webButton.setVisibility(View.GONE);
      }
  
      //resolve phone button visibility
      if(!currentCompany.getPhone().equals("")) {
          phoneButton.setVisibility(View.VISIBLE);
          phoneButton.setOnClickListener(new OnClickListener() {
              public void onClick(View arg0) {
                  //...code removed...
              }
          });
      }
      else {
          phoneButton.setVisibility(View.GONE);
      }
  
  
  }}}
  </code></pre>