Android:ListView 的工作原理

标签 android

例如,我的自定义 ExpandableListAdapter 扩展了 BaseExpandableListAdapter,它有两个组。

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
            ViewGroup parent) {
        if (convertView == null) {
            convertView = infalInflater.inflate(R.layout.rowgroup, parent, false);
        }
        s++;
        Log.d("Index", String.valueOf(s));
        return convertView;
    }

第一个问题:为什么这段代码在 LogCat 中总是返回 Index = 1, Index = 2, Index = 3, ..., Index = 10?

public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
            ViewGroup parent) {
        if (convertView == null) {
            s++;
            Log.d("Index", String.valueOf(s));
            convertView = infalInflater.inflate(R.layout.rowgroup, parent, false);
        }
            return convertView;
        }

第二个问题:为什么这段代码会在LogCat中返回Index = 1, Index = 2, Index = 3?我只有2组,不是3组。如果我再添加一组,Index值将是4。我在convertView = infalInflater.inflate(R.layout.rowgroup, parent, false);设置断点; 行,我看到 groupPosition==0 在开头和结尾执行了 getGroupView。

这是我的错误还是应该的?我想了解为什么会这样 =)

感谢您的回答!

最佳答案

我想我找到了答案 here =) 在那之前我不明白它是如何工作的。

关于Android:ListView 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896612/

相关文章:

Android 服务 onBind -> onStart

java - Android:没有预览就拍照:java.lang.RuntimeException:takePicture 失败

android - 如何将 CellInfo 时间戳转换为实际日期?

android - 如何使用jfeinstein10/SlidingMenu在Android中实现两级滑动菜单?

java - 有没有办法在不重新绑定(bind)的情况下更新 RecyclerView 中的某些项目?

java - 硬编码数组或资源字符串数组哪个更好用?

android - 通过网络服务器检测手机

android - Python 作为 Android 构建要求

android - 在 Android 的 VideoView 上显示和隐藏播放按钮

android - 授权成功后如何获取AccessToken发布推特