我有ExpandableListView
,我在此ListView
的每个组上都有按钮。如何知道哪个组的按钮用户点击了什么?
当用户在这些小部件上做一些事件时,是否可以为按钮和编辑文本提供一些id并获取此ID?
答案 0 :(得分:1)
您应该为listView_layout
中的按钮设置ID。
您需要为listView设置Adapter
。在getChildView
方法中,您可以为按钮设置单击侦听器。
public class ExpandableListAdapter extends BaseExpandableListAdapter {
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listView_layout, null);
holder = new ViewHolder();
holder.mButton= (ImageButton) convertView.findViewById(R.id.myButton);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
public static class ViewHolder {
public ImageButton mButton;
}
}
答案 1 :(得分:0)
这样做:
yourListView.setOnChildClickListener(this);
在重写方法中:
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
switch (groupPosition or childPosition) {
case 0:
// do your logic
break;
default:
break;
}
return false;
}
您将获得GroupPosition和ChildPosition。