Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实现三级可扩展ListView android?_Android - Fatal编程技术网

实现三级可扩展ListView android?

实现三级可扩展ListView android?,android,Android,我有一个导航抽屉,并试图在android中实现一个可扩展的LisView,其中包含3个级别: 趋势 相貌 男人 --服装 -------西服 -------随意的 --鞋类 -------靴子 -------人字拖 女人 --服装 -------西服 -------随意的 --鞋类 -------靴子 -------触发器 我采用可扩展ListView1,并将另一个可扩展ListView2设置为其子级,这将扩展第三级子类别。 但我没有达到预期的效果。 第二级分类没有出现,所以第三级是无法达到的。

我有一个导航抽屉,并试图在android中实现一个可扩展的LisView,其中包含3个级别:

趋势

相貌

男人

--服装
-------西服

-------随意的

--鞋类

-------靴子

-------人字拖

女人

--服装

-------西服

-------随意的

--鞋类

-------靴子

-------触发器

我采用可扩展ListView1,并将另一个可扩展ListView2设置为其子级,这将扩展第三级子类别。 但我没有达到预期的效果。 第二级分类没有出现,所以第三级是无法达到的。 任何想法或帮助都将不胜感激。我在任何地方都找不到解决方案

`public void prepareListData(){ //TODO自动生成的方法存根 listDataHeader=新的ArrayList(); listDataChild=新HashMap>()

公共类ExpandableListAdapter扩展了BaseExpandableListAdapter{

private Context _context;
List<String> _listDataHeader; // header titles
// child data in format of header title, child title
HashMap<String, List<String>> _listDataChild;

//sub sub category of men and women
private HashMap<String, List<String>> _menListDatasubChild,_womenListDatasubChild;

ExpandableListView expChildList;
ChildExpandableListAdapter childAdapter;
public ExpandableListAdapter(Context context,
        List<String> listDataHeader,
        HashMap<String, List<String>> listDataChild, HashMap<String, List<String>> menListDataSubChild, HashMap<String, List<String>> womenListDataSubChild) {
    // TODO Auto-generated constructor stub
    this._context=context;
    this._listDataChild=listDataChild;
    this._listDataHeader=listDataHeader;
    this._menListDatasubChild=menListDataSubChild;
    this._womenListDatasubChild=womenListDataSubChild;
}

@Override
public Object getChild(int groupPosition, int childPosititon) {
    return this._listDataChild.get(this._listDataHeader.get(groupPosition))
            .get(childPosititon);
}

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

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

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

    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) this._context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.list_item, null);
    }

   // TextView txtListChild = (TextView) convertView
     //      .findViewById(R.id.ListHeader1);

    //calling sub level Adapter

    Log.e("groupPos", String.valueOf(groupPosition));
    Log.e("childText", childText);
    expChildList=(ExpandableListView) convertView.findViewById(R.id.expChildList);

    childAdapter=new ChildExpandableListAdapter(this._context,groupPosition);
    expChildList.setAdapter(childAdapter);
 // Listview Group click listener
    expChildList.setOnGroupClickListener(new OnGroupClickListener() {

        @Override
        public boolean onGroupClick(ExpandableListView parent, View v,
                int groupPosition, long id) {
            // Toast.makeText(getApplicationContext(),
             //"Group Clicked " + listDataHeader.get(groupPosition),
             //Toast.LENGTH_SHORT).show();

            return false;
        }
    });

 // Listview Group expanded listener
    expChildList.setOnGroupExpandListener(new OnGroupExpandListener() {

        @Override
        public void onGroupExpand(int groupPosition) {

        }
    });

 // Listview Group collasped listener
    expChildList.setOnGroupCollapseListener(new OnGroupCollapseListener() {

        @Override
        public void onGroupCollapse(int groupPosition) {


        }
    });


//  mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
    // Listview on child click listener
    expChildList.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id) {
            // TODO Auto-generated method stub

            return false;
        }
    });
    //txtListChild.setText(childText);
    return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {

    if(groupPosition==0)
        return 0;
    else if(groupPosition==1)
        return 0;
    else if(groupPosition==4)
        return 0;
    else
    return this._listDataChild.get(this._listDataHeader.get(groupPosition)).size();
}

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

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

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

@SuppressLint("InflateParams")
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
    String headerTitle = (String) getGroup(groupPosition);
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) this._context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.list_group,null);
    }

    TextView lblListHeader = (TextView) convertView
           .findViewById(R.id.ListHeader);

    lblListHeader.setTypeface(null, Typeface.BOLD);
    lblListHeader.setText(headerTitle);
    ImageView iconExpand = (ImageView) convertView.findViewById(R.id.icon_expand);
    ImageView iconCollapse = (ImageView) convertView.findViewById(R.id.icon_collapse);

    if(getChildrenCount(groupPosition)==0)
    {
    iconExpand.setVisibility(View.INVISIBLE);
    iconCollapse.setVisibility(View.INVISIBLE);
    }
else if(isExpanded)
{
    iconExpand.setVisibility(View.INVISIBLE);
    iconCollapse.setVisibility(View.VISIBLE);
}
else
{
    iconExpand.setVisibility(View.VISIBLE);
    iconCollapse.setVisibility(View.INVISIBLE);
}
    return convertView;
}

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

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


//********sub sub child adapter

public class ChildExpandableListAdapter extends BaseExpandableListAdapter {


    Context context;
    int _groupPosition;
    public ChildExpandableListAdapter(
            Context context, int groupPosition) {
        // TODO Auto-generated constructor stub
        this.context=context;

        this._groupPosition=groupPosition;

        Log.e("gP",""+_groupPosition);
    }

    @Override
    public int getGroupCount() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        // TODO Auto-generated method stub
        return 0;
    }
    @Override
    public Object getGroup(int groupPosition) {
        // TODO Auto-generated method stub
        if(_groupPosition==2)//men sub category
        {
            if(groupPosition==0)
                return "Clothing";
            else if(groupPosition==1)
                return "Footwear";
            else
                return "Accesories";
        }
        else if(_groupPosition==3)//female sub category
        {
            if(groupPosition==0)
                return "Western wear";
            else if(groupPosition==1)
                return "Footwear";
            else if(groupPosition==2)
                return "Ethnic wear";
            else if(groupPosition==2)
                return "Lingerie";
            else
                return "Accesories";

        }

        return null;
    }


    @Override
    public Object getChild(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        //return this.__listDataChild.get(groupPosition)
        if(_groupPosition==2)
        {
            return _menListDatasubChild.get(getGroup(groupPosition)).get(childPosition);
        }
        else if(_groupPosition==3)
        {
            return _womenListDatasubChild.get(getGroup(groupPosition)).get(childPosition);
        }
        return null;
    }

    @Override
    public long getGroupId(int groupPosition) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public boolean hasStableIds() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        String headerTitle =(String)getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_group1,null);
        }

        TextView lblListHeader = (TextView) convertView
               .findViewById(R.id.ListHeader1);
        Log.e("HeaderTitle",headerTitle);
        lblListHeader.setTypeface(null, Typeface.BOLD);
        lblListHeader.setText(headerTitle);

        return convertView;     
       }

    @Override
    public View getChildView(int groupPosition, int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

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

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

        TextView txtListChild = (TextView) convertView
               .findViewById(R.id.textView1);

        txtListChild.setText(childText);
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return true;
    }



enter code here




}
private Context\u Context;
列表_listDataHeader;//标题
//标题标题、子标题格式的子数据
HashMap\u listDataChild;
//男子和妇女分组
私有HashMap _menListDatasubChild,_womnlistdatasubchild;
ExpandableListView expChildList;
ChildExpandableListAdapter-childAdapter;
公共ExpandableListAdapter(上下文,
列表listDataHeader,
HashMap listDataChild、HashMap menListDataSubChild、HashMap WomListDataSubChild){
//TODO自动生成的构造函数存根
这._context=context;
这是._listDataChild=listDataChild;
这。_listDataHeader=listDataHeader;
这是.\u menlistdasubchild=menlistdasubchild;
这是。_womlensteddatasubchild=womlensteddatasubchild;
}
@凌驾
公共对象getChild(int-groupPosition、int-ChildPosition){
返回此。_listDataChild.get(此。_listDataHeader.get(groupPosition))
.get(childpositionon);
}
@凌驾
公共长getChildId(int-groupPosition,int-childPosition){
返回子位置;
}
@凌驾
公共视图getChildView(int groupPosition,final int childPosition,
布尔值isLastChild、视图转换视图、视图组父级){
最终字符串childText=(字符串)getChild(groupPosition,childPosition);
if(convertView==null){
LayoutInflater infalInflater=(LayoutInflater)this.\u上下文
.getSystemService(上下文布局\充气机\服务);
convertView=infalInflater.充气(R.layout.list_项,空);
}
//TextView txtListChild=(TextView)convertView
//.findViewById(R.id.ListHeader1);
//调用子级适配器
Log.e(“groupPos”,String.valueOf(groupPosition));
Log.e(“childText”,childText);
expChildList=(ExpandableListView)convertView.findViewById(R.id.expChildList);
childAdapter=新的ChildExpandableListAdapter(此.\u上下文,groupPosition);
expChildList.setAdapter(childAdapter);
//Listview组单击侦听器
expChildList.setOnGroupClickListener(新的OnGroupClickListener(){
@凌驾
公共布尔值onGroupClick(ExpandableListView父视图,视图v,
int groupPosition,长id){
//Toast.makeText(getApplicationContext(),
//“组单击”+listDataHeader.get(groupPosition),
//吐司。长度(短)。show();
返回false;
}
});
//Listview组扩展侦听器
setOnGroupExpandListener(新的OnGroupExpandListener()){
@凌驾
public void onGroupExpand(int groupPosition){
}
});
//Listview组压缩侦听器
setOnGroupCollapseListener(新的OnGroupCollapseListener(){
@凌驾
公共void-onGroupCollapse(int-groupPosition){
}
});
//setOnItemClickListener(新的DrawerItemClickListener());
//子单击侦听器上的Listview
setOnChildClickListener(新的OnChildClickListener(){
@凌驾
公共布尔onChildClick(ExpandableListView父视图,视图v,
int groupPosition、int childPosition、long id){
//TODO自动生成的方法存根
返回false;
}
});
//setText(childText);
返回视图;
}
@凌驾
公共整数getChildrenCount(整数组位置){
if(groupPosition==0)
返回0;
else if(groupPosition==1)
返回0;
else if(groupPosition==4)
返回0;
其他的
返回此。_listDataChild.get(此。_listDataHeader.get(groupPosition)).size();
}
@凌驾
公共对象getGroup(int-groupPosition){
返回此。\u listDataHeader.get(groupPosition);
}
@凌驾
public int getGroupCount(){
返回此值。_listDataHeader.size();
}
@凌驾
公共长getGroupId(int-groupPosition){
返回组位置;
}
@SuppressLint(“充气参数”)
@凌驾
公共视图getGroupView(int-groupPosition,布尔值isExpanded,
视图(视图、视图组父级){
字符串头文件=(字符串)getGroup(groupPosition);
if(convertView==null){
LayoutInflater infalInflater=(LayoutInflater)this.\u上下文
.getSystemService(上下文布局\充气机\服务);
convertView=infalInflater.充气(R.layout.list\u组,空);
}
TextView lblistheader=(TextView)convertView
.findViewById(R.id.ListHeader);
lblListHeader.setTypeface(null,Typeface.BOLD);
lblListHeader.setText(标题);
ImageView图标扩展=(ImageView)convertView.findViewById(R.id.icon\u扩展);
ImageView图标折叠=(ImageView)convertView.findViewById(R.id.icon\u折叠);
如果(getChildrenCount(groupPosition)==0)
{
iconExpand.setVisibility(视图不可见);
iconCollapse.setVisibility(视图不可见);
}
else if(扩展)
{
iconExpand.setVisibility(视图不可见);
iconCollapse.setVisibility(View.VISIBLE);
}
其他的
{
iconExpand.setVis
    expListView.setAdapter(listAdapter);
    //Calling fuction for adding icon for Navigation Bar
    addingNavIconOnActionBar();

    // Listview Group click listener
    expListView.setOnGroupClickListener(new OnGroupClickListener() {

        @Override
        public boolean onGroupClick(ExpandableListView parent, View v,
                int groupPosition, long id) {
            // Toast.makeText(getApplicationContext(),
             //"Group Clicked " + listDataHeader.get(groupPosition),
             //Toast.LENGTH_SHORT).show();
            if(groupPosition==0)
            {
                Intent trendingIntent=new Intent(getApplicationContext(), Trending.class);
                startActivity(trendingIntent);
            }
            else if(groupPosition==1)
            {
                Intent trendingIntent=new Intent(getApplicationContext(), Looks.class);
                startActivity(trendingIntent);

            }

            return false;
        }
    });

 // Listview Group expanded listener
    expListView.setOnGroupExpandListener(new OnGroupExpandListener() {

        @Override
        public void onGroupExpand(int groupPosition) {
            Toast.makeText(getApplicationContext(),
                    listDataHeader.get(groupPosition) + " Expanded",
                    Toast.LENGTH_SHORT).show();
        }
    });

 // Listview Group collasped listener
    expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {

        @Override
        public void onGroupCollapse(int groupPosition) {
            Toast.makeText(getApplicationContext(),
                    listDataHeader.get(groupPosition) + " Collapsed",
                    Toast.LENGTH_SHORT).show();

        }
    });


//  mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
    // Listview on child click listener
    expListView.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id) {
            // TODO Auto-generated method stub
            Toast.makeText(
                    getApplicationContext(),
                    listDataHeader.get(groupPosition)
                            + " : "
                            + listDataChild.get(
                                       listDataHeader.get(groupPosition)).get(
                                    childPosition), Toast.LENGTH_SHORT)
                    .show();`enter code here`
            return false;
        }
    });
}` 

enter code here
private Context _context;
List<String> _listDataHeader; // header titles
// child data in format of header title, child title
HashMap<String, List<String>> _listDataChild;

//sub sub category of men and women
private HashMap<String, List<String>> _menListDatasubChild,_womenListDatasubChild;

ExpandableListView expChildList;
ChildExpandableListAdapter childAdapter;
public ExpandableListAdapter(Context context,
        List<String> listDataHeader,
        HashMap<String, List<String>> listDataChild, HashMap<String, List<String>> menListDataSubChild, HashMap<String, List<String>> womenListDataSubChild) {
    // TODO Auto-generated constructor stub
    this._context=context;
    this._listDataChild=listDataChild;
    this._listDataHeader=listDataHeader;
    this._menListDatasubChild=menListDataSubChild;
    this._womenListDatasubChild=womenListDataSubChild;
}

@Override
public Object getChild(int groupPosition, int childPosititon) {
    return this._listDataChild.get(this._listDataHeader.get(groupPosition))
            .get(childPosititon);
}

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

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

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

    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) this._context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.list_item, null);
    }

   // TextView txtListChild = (TextView) convertView
     //      .findViewById(R.id.ListHeader1);

    //calling sub level Adapter

    Log.e("groupPos", String.valueOf(groupPosition));
    Log.e("childText", childText);
    expChildList=(ExpandableListView) convertView.findViewById(R.id.expChildList);

    childAdapter=new ChildExpandableListAdapter(this._context,groupPosition);
    expChildList.setAdapter(childAdapter);
 // Listview Group click listener
    expChildList.setOnGroupClickListener(new OnGroupClickListener() {

        @Override
        public boolean onGroupClick(ExpandableListView parent, View v,
                int groupPosition, long id) {
            // Toast.makeText(getApplicationContext(),
             //"Group Clicked " + listDataHeader.get(groupPosition),
             //Toast.LENGTH_SHORT).show();

            return false;
        }
    });

 // Listview Group expanded listener
    expChildList.setOnGroupExpandListener(new OnGroupExpandListener() {

        @Override
        public void onGroupExpand(int groupPosition) {

        }
    });

 // Listview Group collasped listener
    expChildList.setOnGroupCollapseListener(new OnGroupCollapseListener() {

        @Override
        public void onGroupCollapse(int groupPosition) {


        }
    });


//  mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
    // Listview on child click listener
    expChildList.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id) {
            // TODO Auto-generated method stub

            return false;
        }
    });
    //txtListChild.setText(childText);
    return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {

    if(groupPosition==0)
        return 0;
    else if(groupPosition==1)
        return 0;
    else if(groupPosition==4)
        return 0;
    else
    return this._listDataChild.get(this._listDataHeader.get(groupPosition)).size();
}

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

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

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

@SuppressLint("InflateParams")
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
    String headerTitle = (String) getGroup(groupPosition);
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) this._context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.list_group,null);
    }

    TextView lblListHeader = (TextView) convertView
           .findViewById(R.id.ListHeader);

    lblListHeader.setTypeface(null, Typeface.BOLD);
    lblListHeader.setText(headerTitle);
    ImageView iconExpand = (ImageView) convertView.findViewById(R.id.icon_expand);
    ImageView iconCollapse = (ImageView) convertView.findViewById(R.id.icon_collapse);

    if(getChildrenCount(groupPosition)==0)
    {
    iconExpand.setVisibility(View.INVISIBLE);
    iconCollapse.setVisibility(View.INVISIBLE);
    }
else if(isExpanded)
{
    iconExpand.setVisibility(View.INVISIBLE);
    iconCollapse.setVisibility(View.VISIBLE);
}
else
{
    iconExpand.setVisibility(View.VISIBLE);
    iconCollapse.setVisibility(View.INVISIBLE);
}
    return convertView;
}

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

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


//********sub sub child adapter

public class ChildExpandableListAdapter extends BaseExpandableListAdapter {


    Context context;
    int _groupPosition;
    public ChildExpandableListAdapter(
            Context context, int groupPosition) {
        // TODO Auto-generated constructor stub
        this.context=context;

        this._groupPosition=groupPosition;

        Log.e("gP",""+_groupPosition);
    }

    @Override
    public int getGroupCount() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        // TODO Auto-generated method stub
        return 0;
    }
    @Override
    public Object getGroup(int groupPosition) {
        // TODO Auto-generated method stub
        if(_groupPosition==2)//men sub category
        {
            if(groupPosition==0)
                return "Clothing";
            else if(groupPosition==1)
                return "Footwear";
            else
                return "Accesories";
        }
        else if(_groupPosition==3)//female sub category
        {
            if(groupPosition==0)
                return "Western wear";
            else if(groupPosition==1)
                return "Footwear";
            else if(groupPosition==2)
                return "Ethnic wear";
            else if(groupPosition==2)
                return "Lingerie";
            else
                return "Accesories";

        }

        return null;
    }


    @Override
    public Object getChild(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        //return this.__listDataChild.get(groupPosition)
        if(_groupPosition==2)
        {
            return _menListDatasubChild.get(getGroup(groupPosition)).get(childPosition);
        }
        else if(_groupPosition==3)
        {
            return _womenListDatasubChild.get(getGroup(groupPosition)).get(childPosition);
        }
        return null;
    }

    @Override
    public long getGroupId(int groupPosition) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public boolean hasStableIds() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        String headerTitle =(String)getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_group1,null);
        }

        TextView lblListHeader = (TextView) convertView
               .findViewById(R.id.ListHeader1);
        Log.e("HeaderTitle",headerTitle);
        lblListHeader.setTypeface(null, Typeface.BOLD);
        lblListHeader.setText(headerTitle);

        return convertView;     
       }

    @Override
    public View getChildView(int groupPosition, int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

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

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

        TextView txtListChild = (TextView) convertView
               .findViewById(R.id.textView1);

        txtListChild.setText(childText);
        return convertView;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return true;
    }



enter code here




}
HelperDatabaseAdapterClass helperDatabaseAdapterClass;

private ArrayList<Product>pProductArrayList=new ArrayList<Product>();;
private ArrayList<SubCategory>pSubItemArrayList=new ArrayList<SubCategory>();;
private ArrayList<SubCategory>pSubItemArrayList2=new ArrayList<SubCategory>();;
private LinearLayout mLinearListView;
boolean isFirstViewClick=false;
boolean isSecondViewClick=false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    helperDatabaseAdapterClass=new HelperDatabaseAdapterClass(this);
    mLinearListView = (LinearLayout) findViewById(R.id.linear_listview);

    /**
     *
     */
    ArrayList<HashMap<String, String>> Colormap = HelperDatabaseAdapterClass.find("select * from Color", null);
    int colorcount = 0;
    ArrayList<ItemList> mItemListArray=new ArrayList<ItemList>();
    for (int i = 0; i < Colormap.size(); i++) {

        mItemListArray.add(new ItemList(Colormap.get(i).get("Name"), Colormap.get(i).get("Quantity")));
        colorcount = colorcount+Integer.parseInt(Colormap.get(i).get("Quantity"));
    }
    pSubItemArrayList.add(new SubCategory("Color", colorcount+"", mItemListArray));


    ArrayList<HashMap<String, String>> Clothsmap = HelperDatabaseAdapterClass.find("select * from Cloths", null);

    int cohcount= 0;
    ArrayList<ItemList> mItemListArray2=new ArrayList<ItemList>();
    for (int i = 0; i < Clothsmap.size(); i++) {
        mItemListArray2.add(new ItemList(Clothsmap.get(i).get("Name"), Clothsmap.get(i).get("Quantity")));
        cohcount = cohcount+Integer.parseInt(Clothsmap.get(i).get("Quantity"));

    }

    pSubItemArrayList2.add(new SubCategory("Cloths", cohcount+"", mItemListArray2));

    pProductArrayList.add(new Product("Emotions", colorcount+"", pSubItemArrayList));
    pProductArrayList.add(new Product("Garments", cohcount+"", pSubItemArrayList2));


    /***
     * adding item into listview
     */
    for (int i = 0; i < pProductArrayList.size(); i++) {

        LayoutInflater inflater = null;
        inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View mLinearView = inflater.inflate(R.layout.row_first, null);

        final TextView mProductName = (TextView) mLinearView.findViewById(R.id.textViewName);
        final RelativeLayout mLinearFirstArrow=(RelativeLayout)mLinearView.findViewById(R.id.linearFirst);
        final ImageView mImageArrowFirst=(ImageView)mLinearView.findViewById(R.id.imageFirstArrow);
        final LinearLayout mLinearScrollSecond=(LinearLayout)mLinearView.findViewById(R.id.linear_scroll);

        if(isFirstViewClick==false){
            mLinearScrollSecond.setVisibility(View.GONE);
            mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt);
        }
        else{
            mLinearScrollSecond.setVisibility(View.VISIBLE);
            mImageArrowFirst.setBackgroundResource(R.drawable.arw_down);
        }

        mLinearFirstArrow.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                if(isFirstViewClick==false){
                    isFirstViewClick=true;
                    mImageArrowFirst.setBackgroundResource(R.drawable.arw_down);
                    mLinearScrollSecond.setVisibility(View.VISIBLE);

                }else{
                    isFirstViewClick=false;
                    mImageArrowFirst.setBackgroundResource(R.drawable.arw_lt);
                    mLinearScrollSecond.setVisibility(View.GONE);
                }
                return false;
            }
        });


        final String name = pProductArrayList.get(i).getpName();
        mProductName.setText(name+"   "+pProductArrayList.get(i).getpCount());

        /**
         *
         */
        for (int j = 0; j < pProductArrayList.get(i).getmSubCategoryList().size(); j++) {

            LayoutInflater inflater2 = null;
            inflater2 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View mLinearView2 = inflater2.inflate(R.layout.row_second, null);

            TextView mSubItemName = (TextView) mLinearView2.findViewById(R.id.textViewTitle);
            final RelativeLayout mLinearSecondArrow=(RelativeLayout)mLinearView2.findViewById(R.id.linearSecond);
            final ImageView mImageArrowSecond=(ImageView)mLinearView2.findViewById(R.id.imageSecondArrow);
            final LinearLayout mLinearScrollThird=(LinearLayout)mLinearView2.findViewById(R.id.linear_scroll_third);

            if(isSecondViewClick==false){
                mLinearScrollThird.setVisibility(View.GONE);
                mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt);
            }
            else{
                mLinearScrollThird.setVisibility(View.VISIBLE);
                mImageArrowSecond.setBackgroundResource(R.drawable.arw_down);
            }

            mLinearSecondArrow.setOnTouchListener(new OnTouchListener() {

                @Override
                public boolean onTouch(View v, MotionEvent event) {

                    if(isSecondViewClick==false){
                        isSecondViewClick=true;
                        mImageArrowSecond.setBackgroundResource(R.drawable.arw_down);
                        mLinearScrollThird.setVisibility(View.VISIBLE);

                    }else{
                        isSecondViewClick=false;
                        mImageArrowSecond.setBackgroundResource(R.drawable.arw_lt);
                        mLinearScrollThird.setVisibility(View.GONE);
                    }
                    return false;
                }
            });


            final String catName = pProductArrayList.get(i).getmSubCategoryList().get(j).getpSubCatName();
            final String catCount = pProductArrayList.get(i).getmSubCategoryList().get(j).getpSubCatCount();
            mSubItemName.setText(catName+"     "+catCount);


            /**
             *
             */
            for (int k = 0; k < pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().size(); k++) {

                LayoutInflater inflater3 = null;
                inflater3 = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View mLinearView3 = inflater3.inflate(R.layout.row_third, null);

                TextView mItemName = (TextView) mLinearView3.findViewById(R.id.textViewItemName);
                TextView mItemPrice = (TextView) mLinearView3.findViewById(R.id.textViewItemPrice);
                final String itemName = pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().get(k).getItemName();
                final String itemPrice = pProductArrayList.get(i).getmSubCategoryList().get(j).getmItemListArray().get(k).getItemPrice();
                mItemName.setText(itemName);
                mItemPrice.setText(itemPrice);

                mLinearScrollThird.addView(mLinearView3);
            }

            mLinearScrollSecond.addView(mLinearView2);

        }

        mLinearListView.addView(mLinearView);
    }
}

public void Insert(View v) {
    Intent i =new Intent(getApplicationContext(), InsertData.class);
    startActivity(i);
}