为什么getGroupView没有在ExpandableListView中调用?

时间:2013-04-22 05:47:10

标签: android expandablelistview

这是我的代码。 升 当我运行它时,仿真器屏幕上没有任何内容。即使我为父母团体传递价值。

我也在getGroupView上设置了断点,但是这个方法没有被调用。

//父组中的值的类

public class ArrayForList
{
    public static String[] grp ={"Car"};
}

//活动

public class ExpandableActivity extends Activity {

    ExpandableListView ev;
    ExpandableAdapter adp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_expandable);

        ev = (ExpandableListView) findViewById(R.id.el);
        ev.setAdapter(new ExpandableAdapter(this));
    }
    }

//适配器

public class ExpandableAdapter extends BaseExpandableListAdapter {

    Context myContext;
    public ExpandableAdapter(Context con)
    {
        this.myContext = con;
    }

    @Override
    public Object getChild(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getChildView(int groupPosition, int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Object getGroup(int groupPosition) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int getGroupCount() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public long getGroupId(int groupPosition) {
        // TODO Auto-generated method stub
        return groupPosition;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater =  (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.group_row, null);
        }

        TextView tvGroupName = (TextView) convertView.findViewById(R.id.tv_group);
        tvGroupName.setText(ArrayForList.grp[groupPosition]);

        return convertView;

    }

    @Override
    public boolean hasStableIds() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        // TODO Auto-generated method stub
        return false;
    }
    }

// xml group_row

 <TextView
        android:id="@+id/tv_group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

// xml main

<ExpandableListView
        android:id="@+id/el"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

1 个答案:

答案 0 :(得分:8)

在ExpandableAdapter类中更改某些方法的返回值。例如getGroupCount()返回大小0,它更改为组大小。 getGroup(int groupPosition),它还返回null值,更改 groupPosition的组值。