Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Avoid passing null as the view root (need to resolve layout parameters on the inflated layout's root element)

Passing null for root studio gives me this warning:

Avoid passing null as the view root (need to resolve layout parameters on the inflated layout's root element)

It is showing a null value in getGroupView. Please help.

public class ExpandableListAdapter extends BaseExpandableListAdapter {      private Context _context;     private List<String> _listDataHeader; // header titles     // child data in format of header title, child title     private HashMap<String, List<String>> _listDataChild;      public ExpandableListAdapter(Context context, List<String> listDataHeader,                                  HashMap<String, List<String>> listChildData) {         super();         this._context = context;         this._listDataHeader = listDataHeader;         this._listDataChild = listChildData;     }      @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.lblListItem);          txtListChild.setText(childText);         return convertView;     }      @Override     public int getChildrenCount(int groupPosition) {         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;     }      @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.lblListHeader);         lblListHeader.setTypeface(null, Typeface.BOLD);         lblListHeader.setText(headerTitle);          return convertView;     }      @Override     public boolean hasStableIds() {         return false;     }      @Override     public boolean isChildSelectable(int groupPosition, int childPosition) {         return true;     }  } 
like image 968
hash Avatar asked Jul 18 '14 19:07

hash


1 Answers

Instead of doing

convertView = infalInflater.inflate(R.layout.list_item, null); 

do

convertView = infalInflater.inflate(R.layout.list_item, parent, false); 

It will inflate it with the given parent, but won't attach it to the parent.

like image 62
Coeffect Avatar answered Oct 20 '22 15:10

Coeffect