Podanie wartości null dla studia root daje mi to ostrzeżenie:
Unikaj przekazywania wartości null jako katalogu głównego widoku (musisz rozwiązać parametry układu w elemencie głównym zawyżonego układu)
Pokazuje wartość null w getGroupView
. Proszę pomóż.
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;
}
}
setContentView(layoutId)
. Jeśli próbujesz dodać nowy widok do istniejącej grupy ViewGroup, prawdopodobnie powinieneś po prostu przekazać rodzica i pozwolić inflatorowi dołączyć nowy widok.onCreateInputView()
elementu nadrzędnego) pojawia się podczas wdrażania dlaInputMethodService
.Znalazłem dobry artykuł na temat
LayoutInflater
. Autor wyjaśnia, jak działają wszystkie wersjeinflate
metody, oraz podaje przykładyListView
iAlertDialog
http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
Aktualizacja nr 1.
Ta odpowiedź również mi ostatnio pomogła. https://stackoverflow.com/a/5027921/1065835
źródło
Proszę bardzo, z jakiegoś powodu użycie View.inflate zamiast nadmuchiwania z layoutinflater powoduje zniknięcie błędu strzępienia. Myślałem, że opublikuję to tutaj, ponieważ ten wątek znajduje się na górze wyszukiwarki Google ...
źródło
Kiedy tak naprawdę nie masz żadnego
parent
(na przykład tworzenia widoku dlaAlertDialog
), nie masz innego wyjścia niż przejścienull
. Zrób to, aby uniknąć ostrzeżenia:źródło
ViewGroup root = (ViewGroup) myActivity.findViewById(R.id.my_main_content);
gdziemy_main_content
jest identyfikator najbardziej zewnętrznego kontenera w pliku układu mojej aktywności.@SuppressLint("InflateParams")
powyżej swojej metody.Do
AlertDialog
poniższego kodu można użyćźródło
Przyjemna informacja, którą znalazłem, szukając sposobu na rozwiązanie tego problemu. Według Dave'a Smitha,
ViewGroup
Zostały poproszone o tutaj jako część nadmuchać parametrów metoda jest stosowana do dziedziczenia wyższy poziom styling.While przechodzącą NULL może wydawać się nieszkodliwe, to rzeczywiście może być przyczyną poważnych problemów dla aplikacji później. Przeczytaj więcej na ten temat tutaj .źródło
tutaj jest zdjęcie w celach informacyjnych
źródło