2009-11-05 36 views
5

我想把一个复选框放入ExpandableListView。我怎么做?我扩展了BaseExpandableListAdapter并将下列代码放入getGroupView()中:Android - 复选框块ExpandableListView.OnGroupClickListener

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
    ViewGroup parent) { 
    View view = convertView == null ? 
     context.getLayoutInflater().inflate(R.layout.onet_head, null) : convertView; 
    ((TextView)view.findViewById(R.id.onetText)).setText(cats.get(groupPosition).value); 
    return view; 
} 

请注意,膨胀布局?这就是我把TextView和CheckBox放在哪里。 我注意到,将一个复选框放入我的组行布局中时,单击该行时会禁用默认的组行功能,使次要(子)列表出现。 CheckBox正在按预期工作,但当我点击它之外时, 点击从不会被ether CheckBox或OnGroupClickListener检测到。我怀疑把CheckBox放到组行中这种方式干扰事件检测/处理,但到目前为止我无法追踪它

可以 有人帮我解决这个问题吗? CheckBox工作正常,虽然包括检测点击时 直接点击框

回答

10

任何时候你放置一个项目,可聚焦在一个列表中,列表项不再响应点击或类似的东西。对于放置在可聚焦列表项(按钮,复选框等)中的每个项目,都需要将android:focusable属性设置为false。

我有一个类似的问题,那就是我的答案。 Android custom ListView unable to click on items

+0

马特!非常感谢,这确实解决了我的问题 – Bostone 2009-11-06 18:26:29

+0

我的荣幸。很长一段时间,这个让我疯狂。 – MattC 2009-11-06 18:28:26

+0

这些问题让Android开发感到沮丧。 (而且非常宝贵:) – Nilzor 2014-07-02 06:51:34