• 自定义可下拉刷新列表


    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;
            }
    
        }
    }
  • 相关阅读:
    Swift3 重写一个带占位符的textView
    Swift3 使用系统UIAlertView方法做吐司效果
    Swift3 页面顶部实现拉伸效果代码
    Swift3 倒计时按钮扩展
    iOS 获取当前对象所在的VC
    SpringBoot在IDEA下使用JPA
    hibernate 异常a different object with the same identifier value was already associated with the session
    SpringCloud IDEA 教学 番外篇 后台运行Eureka服务注册中心
    SpringCloud IDEA 教学 (五) 断路器控制台(HystrixDashboard)
    SpringCloud IDEA 教学 (四) 断路器(Hystrix)
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2874867.html
Copyright © 2020-2023  润新知