在可扩展列表中以编程方式展开组行

Sna*_*ake 6 android

我正在使用expandablelistview.无论如何我可以在单击里面的图像时展开组行?我知道要让图像响应点击,我必须设置它的焦点.现在,一旦此图像响应click(在我的客户适配器内),我如何以编程方式扩展/折叠它所属的特定组行?

谢谢

Pon*_*pat 13

在适配器中

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 ");
    }
}
Run Code Online (Sandbox Code Playgroud)

在getView()中添加

ImageView imageView = new ImageView();
imageView.setTag(R.id.tagGroupPosition, groupPosition);
imageView.setOnClickListener(onClickListener);
Run Code Online (Sandbox Code Playgroud)

在OnClickListener中添加它

OnClickListener onClickListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        int groupPos = ((ImageView) v).getTagId(R.id.tagGroupPosition);
        onItemSelectedCallback.onImageSelected(groupPos);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在活动中你必须实现YourAdapter.OnItemsSelectedListener Override onImageSelected

@Override
public void onImageSelected(int groupPos){
    if(expandableList.isGroupExpanded(groupPos)){
        expandableList.collapseGroup(groupPos);
    }else{
        expandableList.expandGroup(groupPos);
    }
}
Run Code Online (Sandbox Code Playgroud)