在展开式列表视图的子列表中传递两个数据

时间:2019-05-09 03:35:21

标签: android expandablelistview

我正在尝试在适配器中传递两个数组,但我显然不知道如何在适配器中传递两个数组。

您可以在此图像中看到我想将数据放入“样本”中,但我现在只能传递一个数组。

因此,目前,我有1个分组和1个子数据。 我需要有1组2个子数据

https://imgur.com/a/L3lWSkl

目前,我的代码仅在我的适配器处传递一个数组:

  public NetRevAdapter getAdapter() {
        //initialitiasing dummy datas
        listDataGroup.add("Branch Stats: ");
        listDataGroup.add("Cluster Stats:");

        List<String> dummyBranchStats = new ArrayList<>();
        dummyBranchStats.add("Branch Category");
        dummyBranchStats.add("Net Revenue - Actual YTD");
        dummyBranchStats.add("Net Revenue - Budget YTD");
        dummyBranchStats.add(" % Achievement YTD");
        dummyBranchStats.add("Qualified?");
        dummyBranchStats.add("Total Net Rev Budget 2019");
        dummyBranchStats.add("% Achievement vs Total 2019");

        List<String> dummyClusterStats = new ArrayList<>();
        dummyClusterStats.add("Cluster Name");
        dummyClusterStats.add("Net Revenue - Actual YTD");
        dummyClusterStats.add("Net Revenue - Budget YTD");
        dummyClusterStats.add(" % Achievement YTD");
        dummyClusterStats.add("Nationwide Cluster Rank");
        dummyClusterStats.add("In top 25%?");
        dummyClusterStats.add("Total Net Rev Budget 2019");
        dummyClusterStats.add("% Achievement vs. Total 2019");

        // Adding child data
        listDataChild.put(listDataGroup.get(0), dummyBranchStats);
        listDataChild.put(listDataGroup.get(1), dummyClusterStats);


        NetRevAdapter netRevAdapter = new NetRevAdapter(context,listDataGroup,listDataChild);
        netRevAdapter.notifyDataSetChanged();
        return netRevAdapter;
    }

我的适配器:

public class NetRevAdapter extends BaseExpandableListAdapter {

    // group titles
    private List <String> listDataGroup;

    // child data
    private HashMap<String, List<String>> listDataChild;

    Context context;

    public NetRevAdapter(Context context, List<String> listDataGroup, HashMap<String, List<String>> listDataChild) {
        this.context = context;
        this.listDataGroup = listDataGroup;
        this.listDataChild = listDataChild;

    }

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

    @Override
    public int getChildrenCount(int groupPosition) {
        return this.listDataChild.get(this.listDataGroup.get(groupPosition))
                .size();
    }

    @Override
    public Object getGroup(int groupPosition) {
        return this.listDataGroup.get(groupPosition);
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        return this.listDataChild.get(this.listDataGroup.get(groupPosition))
                .get(childPosition);
    }

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

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

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

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
        String headerTitle = (String) getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater layoutInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.item_netrev_header, null);
        }

        TextView textViewGroup = convertView
                .findViewById(R.id.textViewGroup);
        textViewGroup.setTypeface(null, Typeface.BOLD);
        textViewGroup.setText(headerTitle);

        return convertView;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

        final String childText = (String) getChild(groupPosition, childPosition);

        if (convertView == null) {
            LayoutInflater layoutInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.item_netrev, null);
        }

        TextView textViewChild = convertView
                .findViewById(R.id.titleTextView);

        textViewChild.setText(childText);
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return false;
    }
}

0 个答案:

没有答案