Sticklistheaderlistview

依赖

gethub链接地址

布局

    

adapter

//实现StickyListHeadersAdapter
private class PmAdapter extends BaseAdapter implements StickyListHeadersAdapter {
    //重写getcount()
    @Override
    public int getCount() {

    }

    //重写getitem
    @Override
    public ProcessInfo getItem(int position) {
        return mInfos.get(position);
    }

    //重写getItemId()
    @Override
    public long getItemId(int position) {
        return 0;
    }
    //重写getHeaderView—返回对应的头布局

    /**
     * 2. * 给每一条数据返回一个对应的 头布局的view 相同的组返回的相同
     * 3. 
     */
    @Override
    public View getHeaderView(int position, View convertView,
                              ViewGroup parent) {
        if (convertView == null) {
            convertView = new TextView(getApplicationContext());
        }
        // 获取一条数据bean
        ProcessInfo info = getItem(position);

        TextView tv = (TextView) convertView;
        tv.setTextColor(Color.BLACK);
        tv.setBackgroundColor(Color.parseColor("#CECFCE"));
        tv.setPadding(6, 6, 6, 6);
        if (info.isSys) {
            tv.setText("系统进程(" + mSysInfos.size() + ")个");
        } else {
               tv.setText("用户进程(" + mUserInfos.size() + ")个");
        }
        return convertView;
    }

    //重写getHeaderId()—分组—有多少条目执行多少次(条目和上个条目分组不一样才添加分隔条目)
    @Override
    public long getHeaderId(int position) {
        //获取数据 给每一条数据返回一个 long 值 代表不同的分组
        return info.isSys ? 0 : 1;
    }

    //重写getview
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // 普通数据
        ViewHolder viewHolder;
        if (convertView == null) {
            // 缓存view是空的 生成新的布局view
            convertView = View.inflate(getApplicationContext(), R.layout.item_pm, null);
            viewHolder = new ViewHolder();
            // 获取所有的控件 放到viewHolder里
            viewHolder.ivIcon = (ImageView) convertView
                    .findViewById(R.id.iv_ip_icon);
            // 把viewHolder存到convertView里
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        // 赋值

        return convertView;
    }
}

static class ViewHolder {
    ImageView ivIcon;
    TextView tvName;
    TextView tvMemSize;
    CheckBox mCb;
}

你可能感兴趣的:(Sticklistheaderlistview)