Evite pasar nulo como la raíz de la vista (necesita resolver los parámetros de diseño en el elemento raíz del diseño inflado)

Pasar null para root studio me da esta advertencia:

Evite pasar nulo como la raíz de la vista (necesita resolver los parámetros de diseño en el elemento raíz del diseño inflado)

Está mostrando un valor nulo en getGroupView . Por favor ayuda.

 public class ExpandableListAdapter extends BaseExpandableListAdapter { private Context _context; private List _listDataHeader; // header titles // child data in format of header title, child title private HashMap<String, List> _listDataChild; public ExpandableListAdapter(Context context, List listDataHeader, HashMap<String, List> 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; } } 

En lugar de hacer

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

hacer

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

Lo inflará con el padre dado, pero no lo adjuntará al padre.

Encontré un buen artículo sobre LayoutInflater . El autor explica cómo funcionan todas las versiones del método de AlertDialog y da ejemplos de ListView y AlertDialog

http://www.doubleencore.com/2013/05/layout-inflation-as-intended/

Actualización # 1.

Esta respuesta me ayudó recientemente también. https://stackoverflow.com/a/5027921/1065835

Cuando realmente no tienes ningún parent (por ejemplo, crear vista para AlertDialog ), no tienes más AlertDialog que pasar el null . Entonces haz esto para evitar una advertencia:

 final ViewGroup nullParent = null; convertView = layoutInflater.inflate(R.layout.list_item, nullParent); 

Aquí, por alguna razón, usar View.inflate en lugar de inflar desde un layoutinflater hace que el error de pelusa desaparezca. Pensé que publicaría esto aquí ya que este hilo está en la parte superior de la Búsqueda de Google …

 view = View.inflate(context,R.layout.custom_layout,null); 

Una buena información que encontré mientras buscaba una manera de resolver esto. Según Dave Smith,

La inflación del diseño es el término utilizado en el contexto de Android para indicar cuándo un recurso de diseño XML se analiza y se convierte en una jerarquía de objetos Ver.

Se ha solicitado el ViewGroup aquí como parte de los parámetros del método inflate, que se usa para heredar un estilo de mayor nivel. Aunque pasar null puede parecer inofensivo, en el futuro puede causar serios problemas para su aplicación. Lea más sobre esto aquí .