• 自定义可下拉刷新列表


    package com.hwtt.android.oa.adapter.myapply;
    
    import java.util.ArrayList;
    
    import android.app.AlertDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.os.Handler;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.BaseExpandableListAdapter;
    import android.widget.CheckBox;
    import android.widget.RelativeLayout;
    import android.widget.TextView;
    
    import com.hwtt.android.oa.activity.R;
    import com.hwtt.android.oa.activity.mytodeal.DetailsHolidayActivity;
    import com.hwtt.android.oa.asyntask.myapply.DelApplyAsynTask;
    import com.hwtt.android.oa.bean.deal.HolidayInfo;
    import com.hwtt.android.oa.constants.Constants;
    import com.hwtt.android.oa.tool.MyExpanableListView;
    import com.hwtt.android.oa.tool.MyProgressDialog;
    
    /**
     * 假单申请列表适配器
     * 
     * @author Administrator
     * 
     */
    public class HolidayApplyElvAdapter extends BaseExpandableListAdapter {
        private Context context;
        private int groupResourceId;
        private int childResourceId;
        private ArrayList<HolidayInfo> groupData; // 组数据
        private MyExpanableListView elv;
        private LayoutInflater inflater;
        private MyProgressDialog progressDialog;
        private Handler mHandler;
        public ArrayList<Boolean> isCheckList = new ArrayList<Boolean>(); // 保存checkbox的点击状态
    
        public HolidayApplyElvAdapter(Context context, int groupResourceId,
                int childResourceId, ArrayList<HolidayInfo> groupData,
                MyExpanableListView elv, MyProgressDialog progressDialog,
                Handler mHandler) {
            super();
            this.context = context;
            this.groupResourceId = groupResourceId;
            this.childResourceId = childResourceId;
            this.groupData = groupData;
            this.elv = elv;
            this.progressDialog = progressDialog;
            this.mHandler = mHandler;
    
            inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    
            // 初始化 ischeck
            for (int i = 0; i < groupData.size(); i++) {
                isCheckList.add(false);
            }
    
        }
    
        @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 childPosition;
        }
    
        @Override
        public View getChildView(final int groupPosition, int childPosition,
                boolean isLastChild, View convertView, ViewGroup parent) {
            TextView tvRead, tvDelete;
            ViewHolder vh;
            if (convertView == null) {
                convertView = inflater.inflate(childResourceId, null);
                tvRead = (TextView) convertView.findViewById(R.id.tvRead);
                tvDelete = (TextView) convertView.findViewById(R.id.tvDelete);
                vh = new ViewHolder();
                vh.setTvRead(tvRead);
                vh.setTvDelete(tvDelete);
                convertView.setTag(vh);
    
            } else {
                vh = (ViewHolder) convertView.getTag();
                tvRead = vh.getTvRead();
                tvDelete = vh.getTvDelete();
            }
            // 查看申请详情
            tvRead.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent();
                    intent.setClass(context, DetailsHolidayActivity.class);
                    intent.putExtra(Constants.FROM, Constants.MY_APPLY); // 假单申请详情和假单待办详情的布局不同
                    intent.putExtra("id", groupData.get(groupPosition).getId());// 传递申请编号
                    context.startActivity(intent);
                }
            });
            // 删除
            tvDelete.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    final ArrayList<Integer> listGId = new ArrayList<Integer>();
                    final ArrayList<String> listApplyId = new ArrayList<String>();
                    AlertDialog dialog;
                    AlertDialog.Builder builder = new AlertDialog.Builder(context)
                            .setTitle("温馨提示").setMessage("确定要删除该项吗?")
                            .setPositiveButton("确定",
                                    new DialogInterface.OnClickListener() {
    
                                        @Override
                                        public void onClick(DialogInterface dialog,
                                                int which) {
                                            // progressDialog.show();
    
                                            elv.settips("正在删除...");
                                            elv.showHeaderView();
                                            elv.settips("正在刷新...");
    
                                            listGId.add(groupPosition);
                                            listApplyId.add(groupData.get(
                                                    groupPosition).getId());
    
                                            new DelApplyAsynTask(context, mHandler,
                                                    listGId, "0")
                                                    .execute(listApplyId);
                                        }
                                    }).setNegativeButton("取消", null);
                    dialog = builder.create();
                    dialog.show();
    
                }
            });
    
            return convertView;
        }
    
        /**
         * 获取当前点击开的组ID
         * 
         * @return
         */
        private int getExpandedGroupId() {
            int seletedPos = 0; // 判断点击的组ID
            for (int i = 0; i < groupData.size(); i++) {
                if (elv.isGroupExpanded(i)) {
                    seletedPos = i;
    
                    break;
                }
            }
            return seletedPos;
        }
    
        @Override
        public int getChildrenCount(int groupPosition) {
            // TODO Auto-generated method stub
            return 1;
        }
    
        @Override
        public Object getGroup(int groupPosition) {
            // TODO Auto-generated method stub
            return groupData.get(groupPosition);
        }
    
        @Override
        public int getGroupCount() {
            // TODO Auto-generated method stub
            return groupData.size();
        }
    
        @Override
        public long getGroupId(int groupPosition) {
            // TODO Auto-generated method stub
            return groupPosition;
        }
    
        @Override
        public View getGroupView(final int groupPosition, boolean isExpanded,
                View convertView, ViewGroup parent) {
            String time, type, state, holidaytime = null; // 申请类型,申请时间,审批进度,休假时数
            TextView tvTime, tvPrompt, tvType, tvPrompt3, tv_Time, tvState;
            RelativeLayout rl_01;
            CheckBox cb = null;
    
            ViewHolder vh;
            HolidayInfo info = groupData.get(groupPosition);
    
            if (convertView == null) {
                convertView = inflater.inflate(groupResourceId, null);
                rl_01 = (RelativeLayout) convertView.findViewById(R.id.rl_01);
                tvTime = (TextView) convertView.findViewById(R.id.tvTime);// 申请时间
                tvState = (TextView) convertView.findViewById(R.id.tvState);// 状态
                tv_Time = (TextView) convertView.findViewById(R.id.tv_Time);// 休假时数
                tvPrompt = (TextView) convertView.findViewById(R.id.tvRandomPrompt);
                tvPrompt3 = (TextView) convertView.findViewById(R.id.tvPrompt3);
                tvType = (TextView) convertView.findViewById(R.id.tvRandom);
                cb = (CheckBox) convertView.findViewById(R.id.cbApply);
    
                vh = new ViewHolder();
                vh.setTvTime(tvTime);
                vh.setTv_Time(tv_Time);
                vh.setTvState(tvState);
                vh.setTvPrompt(tvPrompt);
                vh.setTvPrompt3(tvPrompt3);
                vh.setTvType(tvType);
                vh.setCb(cb);
                vh.setRl_01(rl_01);
                convertView.setTag(vh);
    
            } else {
    
                vh = (ViewHolder) convertView.getTag();
                tvTime = vh.getTvTime();
                tv_Time = vh.getTv_Time();
                tvState = vh.getTvState();
                tvPrompt = vh.getTvPrompt();
                tvPrompt3 = vh.getTvPrompt3();
                tvType = vh.getTvType();
                rl_01 = vh.getRl_01();
                cb = vh.getCb();
            }
    
            time = info.getApplicationDate(); // 获取申请时间
            holidaytime = info.getHolidayTime();// 获取休假时数
            type = info.getType(); // 获取假单类型描述
            state = info.getState();// 获取状态
    
            tvState.setText(state);
            tvTime.setText(time);
            tv_Time.setText(holidaytime);
            tvPrompt.setText("类型:");
            tvPrompt3.setText("休假时数:");
            tvType.setText(type);
            cb.setChecked(isCheckList.get(groupPosition));
    
            cb.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
    
                    if (isCheckList.get(groupPosition)) {
                        isCheckList.set(groupPosition, false);
                    } else {
                        isCheckList.set(groupPosition, true);
                    }
    
                }
            });
    
            if (!isExpanded) {
                rl_01.setBackgroundResource(R.drawable.default_item_bg);
            } else {
                rl_01.setBackgroundResource(R.drawable.ext_item_bg);
            }
    
            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;
        }
    
        /**
         * 存储控件变量
         * 
         * @author Administrator
         * 
         */
        private class ViewHolder {
    
            TextView tvTime, tvPrompt, tvType, tvPrompt3, tv_Time, tvState;
            TextView tvRead, tvDelete;
            CheckBox cb;
            RelativeLayout rl_01;
    
            public ViewHolder() {
                super();
                // TODO Auto-generated constructor stub
            }
    
            public TextView getTvRead() {
                return tvRead;
            }
    
            public void setTvRead(TextView tvRead) {
                this.tvRead = tvRead;
            }
    
            public TextView getTvDelete() {
                return tvDelete;
            }
    
            public void setTvDelete(TextView tvDelete) {
                this.tvDelete = tvDelete;
            }
    
            public CheckBox getCb() {
                return cb;
            }
    
            public void setCb(CheckBox cb) {
                this.cb = cb;
            }
    
            public TextView getTvTime() {
                return tvTime;
            }
    
            public void setTvTime(TextView tvTime) {
                this.tvTime = tvTime;
            }
    
            public TextView getTvType() {
                return tvType;
            }
    
            public void setTvType(TextView tvType) {
                this.tvType = tvType;
            }
    
            public TextView getTvPrompt() {
                return tvPrompt;
            }
    
            public void setTvPrompt(TextView tvPrompt) {
                this.tvPrompt = tvPrompt;
            }
    
            public RelativeLayout getRl_01() {
                return rl_01;
            }
    
            public void setRl_01(RelativeLayout rl_01) {
                this.rl_01 = rl_01;
            }
    
            public TextView getTvPrompt3() {
                return tvPrompt3;
            }
    
            public void setTvPrompt3(TextView tvPrompt3) {
                this.tvPrompt3 = tvPrompt3;
            }
    
            public TextView getTv_Time() {
                return tv_Time;
            }
    
            public void setTv_Time(TextView tvTime) {
                tv_Time = tvTime;
            }
    
            public TextView getTvState() {
                return tvState;
            }
    
            public void setTvState(TextView tvState) {
                this.tvState = tvState;
            }
    
        }
    }
  • 相关阅读:
    如何理解volatile关键字
    Spring 4+JMS+ActiveMQ Example with Annotations
    Spring MVC如何获得客户端IP地址
    PDFBox –如何读取PDF的内容
    Spring MVC 使用Ehcache作为缓存的例子
    自定义了一个data table控件
    Linux基本配置
    位操作学习
    QT——QPainter类详解
    QT——设计文件的和控制类的关联问题
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2874867.html
Copyright © 2020-2023  润新知