Pasar nulo para root studio me da esta advertencia:
Evite pasar nulo como la raíz de la vista (es necesario resolver los parámetros de diseño en el elemento raíz del diseño inflado)
Muestra un valor nulo en getGroupView
. Por favor ayuda.
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;
}
}
android
android-layout
warnings
layout-inflater
picadillo
fuente
fuente
setContentView(layoutId)
. Si está intentando agregar una nueva vista a un ViewGroup existente, probablemente debería pasar al padre y dejar que el inflador adjunte la nueva vista.onCreateInputView()
para unInputMethodService
.Encontré un buen artículo sobre
LayoutInflater
. El autor explica cómo funcionan todas las versiones delinflate
método y da ejemplos deListView
yAlertDialog
http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
Actualización n. ° 1.
Esta respuesta también me ayudó recientemente. https://stackoverflow.com/a/5027921/1065835
fuente
Aquí tienes, por alguna razón, usar View.inflate en lugar de inflar desde un layoutinflater hace que el error de pelusa desaparezca. Pensé en publicar esto aquí ya que este hilo está en la parte superior de la Búsqueda de Google ...
fuente
Cuando realmente no tiene ninguna
parent
(por ejemplo, crear vista paraAlertDialog
), no tiene otra forma que pasarnull
. Haga esto para evitar advertencias:fuente
ViewGroup root = (ViewGroup) myActivity.findViewById(R.id.my_main_content);
dondemy_main_content
está la identificación del contenedor más externo en el archivo de diseño de mi actividad.@SuppressLint("InflateParams")
arriba de su método.Para el siguiente
AlertDialog
código se puede utilizarfuente
Una buena información que encontré mientras buscaba una forma de resolver esto. Según Dave Smith,
Lo
ViewGroup
solicitado aquí como parte de los parámetros del método de inflado se utiliza para heredar un estilo de nivel superior. Si bien pasar nulo puede parecer inofensivo, en realidad puede causar serios problemas para su aplicación más adelante. Lea más sobre esto aquí .fuente
Aquí hay una imagen para referencia
fuente