title: ExpandableListView child items don't get focus when touched
body: <p>Ok, so I wrote an ExpandableListView and subclassed BaseExpandableListAdapter... Everything works fine except I cannot get the child views to take focus when clicked.  If I use the trackball everything works fine.  But if I try to click on a child I get no feedback whatsoever.</p>
  
  <p>I have tried setting android:focusable, android:focusableInTouchMode, and android:clickable (and I have also tried setting this via code) but I can't get anything to work.  Any ideas?</p>
  
  <p>Here is my Adapter code:</p>
  
  <pre><code>public class ExpandableAppAdapter extends BaseExpandableListAdapter
  {
      private PackageManager m_pkgMgr;
      private Context m_context;
      private List&lt;ApplicationInfo&gt; m_groups;
      private List&lt;List&lt;ComponentName&gt;&gt; m_children;
  
      public ExpandableAppAdapter(Context context, List&lt;ApplicationInfo&gt; groups, List&lt;List&lt;ComponentName&gt;&gt; children)
      {
          m_context = context;
          m_pkgMgr = m_context.getPackageManager();
          m_groups = groups;
          m_children = children;
      }
  
      @Override
      public Object getChild(int groupPos, int childPos) 
      {
          return m_children.get(groupPos).get(childPos);
      }
  
      @Override
      public long getChildId(int groupPos, int childPos) 
      {
          return childPos;
      }
  
      @Override
      public int getChildrenCount(int groupPos) 
      {
          return m_children.get(groupPos).size();
      }
  
      @Override
      public View getChildView(int groupPos, int childPos, boolean isLastChild, View convertView, ViewGroup parent) 
      {
          if (convertView == null)
          {
              LayoutInflater inflater = LayoutInflater.from(m_context);
              convertView = inflater.inflate(R.layout.expandable_app_child_row, null);
          }
  
          ComponentName child = (ComponentName)getChild(groupPos, childPos);
          TextView txtView = (TextView)convertView.findViewById(R.id.item_app_pkg_name_id);
          if (txtView != null)
              txtView.setText(child.getPackageName());
  
          txtView = (TextView)convertView.findViewById(R.id.item_app_class_name_id);
          if (txtView != null)
              txtView.setText(child.getClassName());
  
          convertView.setFocusableInTouchMode(true);
          return convertView;
      }
  
      @Override
      public Object getGroup(int groupPos) 
      {
          return m_groups.get(groupPos);
      }
  
      @Override
      public int getGroupCount() 
      {
          return m_groups.size();
      }
  
      @Override
      public long getGroupId(int groupPos) 
      {
          return groupPos;
      }
  
      @Override
      public View getGroupView(int groupPos, boolean isExpanded, View convertView, ViewGroup parent) 
      {
          if (convertView == null)
          {
              LayoutInflater inflater = LayoutInflater.from(m_context);
              convertView = inflater.inflate(R.layout.expandable_app_group_row, null);
          }
  
          ApplicationInfo group = (ApplicationInfo)getGroup(groupPos);
          ImageView imgView = (ImageView)convertView.findViewById(R.id.item_selection_icon_id);
          if (imgView != null)
          {
              Drawable img = m_pkgMgr.getApplicationIcon(group);
              imgView.setImageDrawable(img);
              imgView.setMaxWidth(20);
              imgView.setMaxHeight(20);
          }
  
          TextView txtView = (TextView)convertView.findViewById(R.id.item_app_name_id);
          if (txtView != null)
              txtView.setText(m_pkgMgr.getApplicationLabel(group));
  
          return convertView;
      }
      @Override
      public boolean hasStableIds() 
      {
          return false;
      }
      @Override
      public boolean isChildSelectable(int groupPos, int childPos) 
      {
          return true;
      }
  }
  </code></pre>
  
  <p>Thanks in advance!</p>