title: OnClickListener not working for first item in GridView
body: <p>I have a problem with creating a GridView-based calendar. Here is the Grid:</p>
  
  <p><img src="https://i.stack.imgur.com/k8erD.png" alt="GridView Calendar"></p>
  
  <p>This is supposed to be a calendar populated with events, so I have my adapter implement OnClickListener and I set that listener for every button in the calendar. It works perfectly for every single button <strong>EXCEPT</strong> the first one(in this case number 30). When I click it just doesn't work, but when I click on another button after I have attempted to click on the first one, it performs the click for the first one just before performing the click for the other button.</p>
  
  <p>I've scanned about 10 pages of relevant questions and have not found someone to have this problem. Help please!</p>
  
  <p>As asked, here is the getView function of my code:</p>
  
  <pre><code>    public View getView(int position, View convertView, ViewGroup parent)
      {
          View row = convertView;
          ViewHolder holder;
          if (row == null)
          {
              holder = new ViewHolder();
              LayoutInflater inflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              row = inflater.inflate(R.layout.calendar_day_gridcell, parent, false);
              holder.gridCell = (Button) row.findViewById(R.id.calendar_day_gridcell);
              holder.multiDayEvent = (EventLengthView)row.findViewById(R.id.eventLengthView);
          }
          else{
              holder = (ViewHolder)row.getTag();
          }
  
          int calendarGridHeight = (calendarView.getHeight()-5)/(getCount()/7);
          AbsListView.LayoutParams params = new AbsListView.LayoutParams(
                  android.view.ViewGroup.LayoutParams.FILL_PARENT,
                  calendarGridHeight);
          row.setLayoutParams(params);
  
          //Change the background drawable depending on the position in the calendar
          if ((position+1) % 7 == 0){
              holder.gridCell.setBackgroundDrawable(getResources().getDrawable(R.drawable.calendar_button_selector_end_row));
          }
          if (getCount() - position &lt; 8){
              holder.gridCell.setBackgroundDrawable(getResources().getDrawable(R.drawable.calendar_button_selector_end_column));
          }
          if (position == getCount()-1){
              holder.gridCell.setBackgroundDrawable(getResources().getDrawable(R.drawable.calendar_button_selector_end));
          }
          holder.gridCell.setOnClickListener(this);
  
          holder.gridCell.setTag(null);//clear tags
  
          // ACCOUNT FOR SPACING
          String[] day_color = list.get(position).split("-");
          int theday = Integer.parseInt(day_color[0]);
          int themonth = Integer.parseInt(day_color[2]);
          int theyear = Integer.parseInt(day_color[3]);
          String date = DateFormat.format("dd/M/yy", new Date(theyear,themonth,theday)).toString();
          if ((!eventsMap.isEmpty()) &amp;&amp; (eventsMap != null))
          {
              if (eventsMap.containsKey(date))
              {
                  holder.multiDayEvent.SetMeasure(calendarView.getWidth()/7, calendarGridHeight);
  
                  holder.multiDayEvent.setVisibility(View.VISIBLE);
                  //holder.singleDayEvent.setVisibility(View.VISIBLE);
                  Event event = (Event) eventsMap.get(date);
                  holder.multiDayEvent.AddEvent(event);
                  holder.gridCell.setTag(event);
              }
              else{
                  //holder.singleDayEvent.setVisibility(View.GONE);
                  holder.multiDayEvent.setVisibility(View.GONE);
              }
          }
  
          // Set the Day GridCell
          holder.gridCell.setText(Integer.toString(theday));
  
          if (day_color[1].equals("GREY"))
          {
              holder.gridCell.setTextColor(Color.GRAY);
          }
          if (day_color[1].equals("WHITE"))
          {
              holder.gridCell.setTextColor(Color.WHITE);
          }
          if (day_color[1].equals("BLUE"))
          {
              holder.gridCell.setTextColor(Color.BLUE);
          }
  
          row.setTag(holder);
          return row;
      }
  
      public class ViewHolder{
          Button gridCell;
          ImageView singleDayEvent;
          EventLengthView multiDayEvent;
      }
  
      public void onClick(View view)
      {
          if (view.getTag() != null){
              Event event = (Event)view.getTag();
  
              eventListView.setAdapter(new EventListAdapter(CalendarScreen.this, event));
              eventListViewLayout.setVisibility(View.VISIBLE);
              eventListViewLayout.startAnimation(fadeIn);
          }
          else if (eventListViewLayout.getVisibility() == View.VISIBLE){
              onBackPressed();
          }
      }
  </code></pre>
  
  <p>The onClick gets called for every gridcell EXCEPT the first one in the top left corner</p>