Android 中具有自定义 Child 布局的可扩展列表视图

Expandablelistview With Custom Child Layout in Android

我已经在 google 周围搜索了两天,但很难找到解决我的问题的运气。我想要实现的是我想创建一个 ExpandableListView,其中每个 child 都有两个值,一个在右边,另一个在左边,下面的问题是:How to achieve Expandablelistview child custom layout? 是相关的但是不完整,因为缺少一些元素

这就是我想要设计用户界面的方式,我的数组是这样的

[Parent 1 =[{Child 1, Child 1.1},{child 2,child 2.1},{child 3,child 3.1},{child 4, child 4.1},{child 5, child 5.1}],Parent 1=[{}]]

等等等等,现在请帮我解决这个问题,这样我就可以创建一个 UI 类似 given

的东西

使用此 CustomAdapter 并根据需要使用自定义 enter code here 布局只需创建 layout.xml 并在此 adapter

中使用

并尝试改进您的 R&d skills 这不是一个很大的任务,您需要花两天时间来完成它。任何网站都没有提供 code 您想要的只是指导我们,我们需要根据我们的要求改进该代码

public class CustomAdapter extends BaseExpandableListAdapter {
    Context context;
    ArrayList<WeblListHeader> webHeader;

    public CustomAdapter(Context context, ArrayList<WeblListHeader> webHeader) {
        this.context = context;
        this.webHeader = webHeader;
    }

    @Override
    public int getGroupCount() {
        return webHeader.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return webHeader.get(i).getAl_state().size();
    }

    @Override
    public Object getGroup(int i) {
        return webHeader.get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return webHeader.get(i).getAl_state().get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public View getGroupView(int i, boolean isExpanded, View view, ViewGroup viewGroup) {
        if (view==null){

            LayoutInflater layoutInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = layoutInflater.inflate(R.layout.your_expend_header_layout, null);
        }
        TextView tv_state = (TextView)view.findViewById(R.id.tv_name);

        ImageView iconExpend = (ImageView)view.findViewById(R.id.iconExpend);
        if (isExpanded) {
            iconExpend.setImageResource(R.drawable.arrow_up_selected);
            tv_state.setTextColor(context.getResources().getColor(R.color.selectedText));
        } else {
            iconExpend.setImageResource(R.drawable.arrow_down_unselect);
            tv_state.setTextColor(context.getResources().getColor(R.color.white));
        }

        tv_state.setText(webHeader.get(i).getStr_country());
        return view;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
        if (view==null){

            LayoutInflater layoutInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = layoutInflater.inflate(R.layout.your_child_layout, null);
        }

        TextView tv_state = (TextView)view.findViewById(R.id.tv_name);

        tv_state.setText(webHeader.get(i).getAl_state().get(i1).getStr_name());
        tv_state.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });
        return view;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return false;
    }

让我知道它是否适合你,如果有任何问题。