我使用了教程中给出的代码 http://mylifewithandroid.blogspot.com/2010/12/expandable-list-and-checkboxes.html 我附上了ExpandableListView的图像
SimpleExpandableListAdapter expListAdapter =
new SimpleExpandableListAdapter(
this,
createGroupList(),
R.layout.child_row,
new String[] { "CityName" },
new int[] { R.id.childname },
createChildList(),
R.layout.child_row,
new String[] { "citydetails", "city" },
new int[] { R.id.childname, R.id.city}
);
setListAdapter( expListAdapter );
我需要一些关于如何将监听器添加到各个子节点的代码示例,例如单击Address应该将用户带到另一个活动。 期待你的回复。 感谢。
答案 0 :(得分:1)
AFAIK,您无法使用上面的示例向您的子视图添加侦听器。您必须拥有自定义适配器。在此自定义适配器的getChildView
和getGroupView
中,您可以提供自己的侦听器。例如
public View getGroupView(
int groupPosition,
boolean isExpanded,
View convertView,
ViewGroup parent) {
ViewGroup viewGroup = null;
if (convertView == null) {
LayoutInflater li = (LayoutInflater) getApplication().getSystemService(LAYOUT_INFLATER_SERVICE);
if (li != null) {
viewGroup = (ViewGroup) li.inflate(R.layout.listitems_group, parent, false);
}
} else {
viewGroup = (ViewGroup) convertView;
}
Button button = (Button) viewGroup.findViewById(R.id.group_button);
button.setOnClickListener(new OnClickListener() {
void onClick(View v) {
// Do what you want here
}
});
return viewGroup;
}
这里我在GroupView中有按钮,我想添加onClick监听器。
答案 1 :(得分:1)
您还可以让您的活动覆盖onChildClick方法:
@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int groupPosition, int childPosition, long id) {
//implement logic to start the appropriate activity for this child.
}
来自android开发网站:onChildClick。