Expand group row programmatically in expandable list
android
Solution
In adapter
private OnItemSelectedListener onItemSelectedCallback;
public interface OnItemsSelectedListener {
public void onImageSelected(int groupPos);
}
public YourAdapter(Context context) {
try {
this.onItemSelectedCallback = (OnItemSelectedListener ) context;
}
catch (ClassCastException e) {
throw new ClassCastException(context.toString() + " must implement OnItemSelectedListener ");
}
}
Add this in getView()
ImageView imageView = new ImageView();
imageView.setTag(R.id.tagGroupPosition, groupPosition);
imageView.setOnClickListener(onClickListener);
Add this in OnClickListener
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
int groupPos = ((ImageView) v).getTagId(R.id.tagGroupPosition);
onItemSelectedCallback.onImageSelected(groupPos);
}
}
Then in activity you have to implements YourAdapter.OnItemsSelectedListener the Override onImageSelected
@Override
public void onImageSelected(int groupPos){
if(expandableList.isGroupExpanded(groupPos)){
expandableList.collapseGroup(groupPos);
}else{
expandableList.expandGroup(groupPos);
}
}
Problem
I am using expandablelistview. Is there anyway I can expand the group row when an image inside is clicked? I know that to have the image respond to click, I have to set its focus. Now, once this image responds to click (inside my custome adapter), how can I programmatically expand/collapse that specific group row it belongs to? Thank you