So I'm making an expandable listView with the following adapter:
class SubcategoriesAdapter extends BaseExpandableListAdapter {
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View v=convertView;
if(v==null) v=layoutInflater.inflate(R.layout.tip_view, null, false);
((TextView)v.findViewById(R.id.title)).setText(data.subcategories.get(groupPosition).tips.get(childPosition).title);
((TextView)v.findViewById(R.id.content)).setText(data.subcategories.get(groupPosition).tips.get(childPosition).text);
return v;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
@Override
public int getGroupCount() {
return data.subcategories.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return data.subcategories.get(groupPosition).tips.size();
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return data.subcategories.get(groupPosition).tips.get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public Object getGroup(int groupPosition) {
return data.subcategories.get(groupPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View v=convertView;
Tips.TipsSubcategory me=data.subcategories.get(groupPosition);
if(v==null) v=LayoutInflater.from(getContext()).inflate(R.layout.tips_subcategory_view, null, false);
/* ((TextView)v.findViewById(R.id.title)).setText(me.title);
Picasso.with(getActivity()).load(me.ad_url).into(((ImageView) v.findViewById(R.id.adImageView)));
Picasso.with(getActivity()).load(me.image_url).into((ImageView)v.findViewById(R.id.image)); */
return v;
}
}
When I'm loading this Fragment that contains the list, I get the following exception:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:715)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at biz.energit.cookingfridge.user.fragments.TipsCategory$SubcategoriesAdapter.getGroupView(TipsCategory.java:148)
This line that it's pointing to, 148 is the line where I inflate the view:
if(v==null) v=LayoutInflater.from(getContext()).inflate(R.layout.tips_subcategory_view, null, false);
I tried removing the i
, passing the actual parent instead of null
, and getting the inflater from the fragment or via other means. I'm clueless.
UPDATE: Just in case someone has this issue again, I can't write an answer because someone marked this a duplicate.
The problem was using <view
instead of <View
in the XML I was inflating. The compiler says nothing about it, but the issue mafiests itself this way.