title: Android List onListItemClick not working
body: <p>I've got a new List of things that needs to be clicked but this one isn't working. onListItemClick is never called. I have another one in my app that has been working as expected and I can't figure out what the difference is. I've seen the people saying to change focusable but I've tried that a bunch of different ways with no effect. So here's some code.</p>
  
  <p>Working:</p>
  
  <pre><code>@Override
  protected void onListItemClick(ListView l, View v, int position, long id)
  {
      super.onListItemClick(l, v, position, id);
  
      // get the item that was clicked
      v_ProjectInvestigatorSiteContact project = (v_ProjectInvestigatorSiteContact) this.getListAdapter().getItem(
              position);
  
      Intent myIntent = new Intent(this, Details.class);
  
      myIntent.putExtra(res.getString(R.string.project), project);
  
      startActivity(myIntent);
  }// onListItemClick
  </code></pre>
  
  <p>Not Working:</p>
  
  <pre><code>    @Override
  protected void onListItemClick(ListView l, View v, int position, long id)
  {
      super.onListItemClick(l, v, position, id);
  
      // get the item that was clicked
      final v_SitePeople vSitePeople = (v_SitePeople) this.getListAdapter().getItem(
              position);
  
      AlertDialog.Builder builder = new AlertDialog.Builder(Share.this);
      builder.setTitle(res.getString(R.string.forgot_password_check_dialog_title))
              .setMessage(res.getString(R.string.share_check_dialog_text))
              .setPositiveButton(res.getString(R.string.send), new DialogInterface.OnClickListener()
              {
                  @Override
                  public void onClick(DialogInterface dialog, int which)
                  {
                      sendShareEmail(vSitePeople);
                  }
              }).setNegativeButton(res.getString(R.string.cancel), new DialogInterface.OnClickListener()
              {
                  @Override
                  public void onClick(DialogInterface dialog, int which)
                  {
                      // cancelled, so do nothing
                  }
              });
      AlertDialog msgBox = builder.create();
      msgBox.show();
  }// onListItemClick
  </code></pre>
  
  <p>Working XML:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ffffffff"
  android:orientation="vertical" &gt;
  
  &lt;!-- dummy item to prevent edittext from gaining focus on activity start --&gt;
  
  &lt;LinearLayout
      android:layout_width="0px"
      android:layout_height="0px"
      android:focusable="true"
      android:focusableInTouchMode="true" /&gt;
  
  &lt;RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/title_background" &gt;
  
      &lt;ImageView
          android:id="@+id/logo"
          android:layout_width="30dp"
          android:layout_height="30dp"
          android:layout_centerVertical="true"
          android:layout_marginLeft="5dp"
          android:scaleType="centerCrop"
          android:src="@drawable/ic_logo" &gt;
      &lt;/ImageView&gt;
  
      &lt;TextView
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@+id/logo" 
          android:gravity="center"
          android:paddingBottom="5dp"
          android:paddingLeft="50dp"
          android:paddingRight="60dp"
          android:paddingTop="5dp"
          android:text="@string/app_header"
          android:textColor="#ffffffff"
          android:textSize="15sp"
          android:textStyle="bold" /&gt;
  &lt;/RelativeLayout&gt;
  
  &lt;RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/search_gradient" &gt;
  
      &lt;ImageView
          android:id="@+id/searchBoxIcon"
          android:layout_width="38dp"
          android:layout_height="38dp"
          android:layout_centerVertical="true"
          android:layout_marginLeft="5dp"
          android:layout_marginRight="5dp"
          android:scaleType="centerCrop"
          android:src="@drawable/action_search" &gt;
      &lt;/ImageView&gt;
  
      &lt;EditText
          android:id="@+id/searchBox"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_centerVertical="@+id/searchBoxIcon"
          android:layout_marginRight="8dp"
          android:layout_marginTop="4dp"
          android:layout_toRightOf="@+id/searchBoxIcon"
          android:background="@drawable/search_box"
          android:hint="@string/search_hint"
          android:inputType="text"
          android:maxLines="1"
          android:minHeight="30sp"
          android:paddingBottom="2dp"
          android:paddingLeft="25sp"
          android:paddingTop="2dp"
          android:textColor="#ff000000" /&gt;
  &lt;/RelativeLayout&gt;
  
  &lt;ListView
      android:id="@id/android:list"
      android:layout_width="match_parent"
      android:layout_height="0dp"
      android:layout_weight="1"
      android:background="@color/divider_gray"
      android:cacheColorHint="#00000000"
      android:divider="@color/divider_gray"
      android:dividerHeight="1dp"
      android:footerDividersEnabled="false"
      android:headerDividersEnabled="false" /&gt;
  
  &lt;TextView
      android:id="@+id/android:empty"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:gravity="center"
      android:text="@string/loading"
      android:textColor="@color/loading_gray"
      android:textSize="20sp" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>Not Working XML</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ffffffff"
  android:orientation="vertical" &gt;
  
  &lt;!-- dummy item to prevent edittext from gaining focus on activity start --&gt;
  
  &lt;LinearLayout
      android:layout_width="0px"
      android:layout_height="0px"
      android:focusable="true"
      android:focusableInTouchMode="true" /&gt;
  
  &lt;RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/title_background" &gt;
  
      &lt;ImageView
          android:id="@+id/logo"
          android:layout_width="30dp"
          android:layout_height="30dp"
          android:layout_centerVertical="true"
          android:layout_marginLeft="5dp"
          android:scaleType="centerCrop"
          android:src="@drawable/ic_logo" &gt;
      &lt;/ImageView&gt;
  
      &lt;TextView
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@+id/logo"
          android:gravity="center"
          android:paddingBottom="5dp"
          android:paddingLeft="50dp"
          android:paddingRight="60dp"
          android:paddingTop="5dp"
          android:text="@string/share_header"
          android:textColor="#ffffffff"
          android:textSize="15sp"
          android:textStyle="bold" /&gt;
  &lt;/RelativeLayout&gt;
  
  &lt;ListView
      android:id="@id/android:list"
      android:layout_width="match_parent"
      android:layout_height="0dp"
      android:layout_weight="1"
      android:background="@color/divider_gray"
      android:cacheColorHint="#00000000"
      android:divider="@color/divider_gray"
      android:dividerHeight="1dp"
      android:footerDividersEnabled="false"
      android:headerDividersEnabled="false" /&gt;
  
  &lt;TextView
      android:id="@+id/android:empty"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:gravity="center"
      android:text="@string/loading"
      android:textColor="@color/loading_gray"
      android:textSize="20sp" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>Here is more on how the broken one works, just in case you want more code.</p>
  
  <p>Not Working Row 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="match_parent"
  android:layout_height="?android:attr/listPreferredItemHeight"
  android:layout_weight="1"
  android:baselineAligned="false"
  android:orientation="vertical"
  android:padding="6dp"
  android:background="#ffffffff"
  android:layout_margin="10dp" &gt;
  
  &lt;TextView
      android:id="@+id/toptext"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_toLeftOf="@id/moreInfo"
      android:gravity="center_vertical"
      android:minHeight="20sp"
      android:textColor="#ff000000"
      android:textStyle="bold" /&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>Not Working View Adapter</p>
  
  <pre><code>    @Override
  public View getView(int position, View convertView, ViewGroup parent)
  {
      ViewHolder holder = null;
      if (convertView == null)
      {
          holder = new ViewHolder();
  
          LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  
          convertView = vi.inflate(R.layout.share_row, null);
          convertView.setTag(holder);
      }// if
      else
      {
          holder = (ViewHolder) convertView.getTag();
      }
  
      v_SitePeople i = items.get(position);
  
      if (i != null)
      {
          TextView topText = (TextView) convertView.findViewById(R.id.toptext);
          topText.setGravity(Gravity.CENTER_VERTICAL);
          topText.setMinHeight(40);
          if (topText != null)
          {
              if (i.SitePerson != null)
              {
                  if (i.PersonTitle != null)
                  {
                      topText.setText(String.format(i.SitePerson + ", " + i.PersonTitle));
                  }
                  else
                  {
                      topText.setText(i.SitePerson);
                  }
              }// if has ProtocolNumber
              else
              {
                  if (i.Nickname != null)
                  {
                      topText.setText(i.Nickname);
                  }
              }// if does not have ProtocolNumber
          }// if
      }// if
      return convertView;
  }// getView
  </code></pre>
  
  <p>Thank you so much for your help.</p>