android - 为什么 getGroupView 没有调用 ExpandableListView?

标签 android expandablelistview

这是我的代码。 升 当我运行它时,模拟器屏幕上什么也没有。即使我正在为父组传递值。

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

//父组中值的类

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

//Activity

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主体

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

最佳答案

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

关于android - 为什么 getGroupView 没有调用 ExpandableListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140204/

相关文章:

java - 在列表项上滑动 Action ?

android - 我如何为 android :id? 使用 findViewById

java - 使用 OpenCV 在 Android 上进行数字识别的训练数据

php - 在 Android 应用程序中获取并显示单个用户的 MySQL 数据

android - 使用 SimpleCursorTreeAdapter 保存和恢复 ExpandableListActivity 的折叠状态

android - 带有 JSON 数组的 ExpandableListView

android - 在内部存储上播放文件时 MediaPlayer 错误 -2147483648

java - gradle 依赖如何找到包?

android - 我们可以在弹出窗口中打开一个 Activity 吗

android - ExpandableListView中的SwipeListView,可以吗?