在片段中ExpandableListView.getGroupView()convertView arg null

时间:2017-05-03 18:51:27

标签: java android android-fragments

我是Android编程的新手,我的应用程序的当前架构是一个主要活动,其中有一个填充显示的片段。我试图在Fragment中创建一个ExpandableListView,它也填充显示。我想,一切都像我期待的那样,但我无法填充子视图或组视图。

在我的Fragment Java类文件中,我有;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ExpandableListView lv = (ExpandableListView) getView().findViewById(R.id.list);
    lv.setAdapter(new ParentLevel(null));
}
扩展ParentLevel

BaseExpandableListAdapter;

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
                         View convertView, ViewGroup parent)
{
    return convertView;
}

convertView返回null,但parent会返回布局文件中的ExpandableListView

我不知道如何使用这个或下一步做什么,如果我想要一个简单的TextView,一个标题,一个组箭头我该怎么办?

我计划对数据使用枚举,我已经在检查getGroupCount()getChildCount()

1 个答案:

答案 0 :(得分:0)

我能用这段代码解决我的问题;

private final LayoutInflater inf;
private FragmentActivity activity;

public ParentLevel(FragmentActivity act, MenuItem current) {
    activity = act;
    inf = LayoutInflater.from(act);
};    

public View getGroupView(int groupPosition, boolean isExpanded,
                         View convertView, ViewGroup parent)
{
    ViewHolder holder;

    if (convertView == null) {
        convertView = inf.inflate(R.layout.expandable_list_item, parent, false);

        holder = new ViewHolder();
        holder.text = (TextView) convertView.findViewById(R.id.text);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.text.setText(activity.getString(siblings.get(groupPosition).getName()));

    return convertView;
}

和这个班级;

private class ViewHolder {
    TextView text;
}