package com.hwtt.android.oa.adapter;
import static com.hwtt.android.oa.constants.Constants.FROM;
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.Gravity;
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 android.widget.Toast;
import com.hwtt.android.oa.activity.R;
import com.hwtt.android.oa.activity.personal.NoteDetailsActivity;
import com.hwtt.android.oa.activity.personal.ReviseNoteActivity;
import com.hwtt.android.oa.asyntask.DelNoteAsyncTask;
import com.hwtt.android.oa.bean.NoteInfo;
import com.hwtt.android.oa.tool.MyExpanableListView;
/**
* 我的便签列表适配器
*
* @author Administrator
*
*/
public class MyNoteAdapter extends BaseExpandableListAdapter {
Context mContext;
private int groupResourceId;
private int childResourceId;
MyExpanableListView exlv_note;
private ArrayList<NoteInfo> noteList; // 组数据
public ArrayList<Boolean> ischeck = new ArrayList<Boolean>(); // 标记是否被选中
private LayoutInflater inflater;
private Handler mHandler;
public MyNoteAdapter(Context mContext, int groupResourceId,
int childResourceId, ArrayList<NoteInfo> noteList,
MyExpanableListView exlv_note, Handler mHandler) {
super();
this.mContext = mContext;
this.groupResourceId = groupResourceId;
this.childResourceId = childResourceId;
this.noteList = noteList;
this.exlv_note = exlv_note;
this.mHandler = mHandler;
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < noteList.size(); i++) {
ischeck.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) {
// TODO Auto-generated method stub
TextView tvRead, tvFix, tvDelete;
ViewHolder vh;
if (convertView == null) {
convertView = inflater.inflate(childResourceId, null);
tvRead = (TextView) convertView
.findViewById(R.id.tv_notechild_look);
tvFix = (TextView) convertView.findViewById(R.id.tv_notechild_fix);
tvDelete = (TextView) convertView
.findViewById(R.id.tv_notechild_delect);
vh = new ViewHolder();
vh.setTvRead(tvRead);
vh.setTvFix(tvFix);
vh.setTvDelete(tvDelete);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
tvRead = vh.getTvRead();
tvFix = vh.getTvFix();
tvDelete = vh.getTvDelete();
}
// 修改申请
tvFix.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext, ReviseNoteActivity.class);
intent.putExtra(FROM, noteList.get(groupPosition));
mContext.startActivity(intent);
}
});
// 查看申请详情
tvRead.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext, NoteDetailsActivity.class);
intent.putExtra(FROM, noteList.get(groupPosition)); // 判断是否显示审批按钮区域,因为假单申请详情和假单审批详情共用一个layout
mContext.startActivity(intent);
}
});
// 删除
tvDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog dialog;
AlertDialog.Builder builder = new AlertDialog.Builder(mContext)
.setTitle(R.string.dialog_point).setMessage(
R.string.dialog_suredel).setPositiveButton(
R.string.dialog_sure,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
exlv_note.settips(mContext
.getResources().getString(
R.string.message_del));
exlv_note.showHeaderView();
exlv_note
.settips(mContext
.getResources()
.getString(
R.string.message_refresh));
new DelNoteAsyncTask(mHandler,
noteList.get(groupPosition)
.getNoteID(),
groupPosition).execute();
exlv_note.collapseGroup(groupPosition);
}
}).setNegativeButton(R.string.dialog_cannl,
null);
dialog = builder.create();
dialog.show();
}
});
return convertView;
}
@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 noteList.get(groupPosition);
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return noteList.size();// 设置listview显示几条信息
}
@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) {
// TODO Auto-generated method stub
String name, time = null; // 便签标题,便签时间
TextView tvName, tvTime;
CheckBox cb = null;
RelativeLayout rl_01;
ViewHolder vh;
NoteInfo info = noteList.get(groupPosition);
if (convertView == null) {
convertView = inflater.inflate(groupResourceId, null);
rl_01 = (RelativeLayout) convertView.findViewById(R.id.rl_01);
tvName = (TextView) convertView.findViewById(R.id.tv_name);
tvTime = (TextView) convertView.findViewById(R.id.tv_time);
cb = (CheckBox) convertView.findViewById(R.id.cbox_note);
vh = new ViewHolder();
vh.setTvName(tvName);
vh.setTvTime(tvTime);
vh.setCb(cb);
vh.setRl_01(rl_01);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
tvName = vh.getTvName();
tvTime = vh.getTvTime();
rl_01 = vh.getRl_01();
cb = vh.getCb();
}
name = info.getNoteName(); // 获取便签标题
time = info.getNoteTime(); // 获取便签时间
tvName.setText(name);
tvTime.setText(time);
cb.setChecked(ischeck.get(groupPosition));
cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ischeck.get(groupPosition)) {
ischeck.set(groupPosition, false);
} else {
ischeck.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 true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
// 提示信息
public static void Info(String message, Context context) {
Toast toast = Toast.makeText(context, message, 1);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
}
/**
* 存储控件变量
*
* @author Administrator
*
*/
private class ViewHolder {
TextView tvName, tvTime;
TextView tvRead, tvFix, 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 getTvFix() {
return tvFix;
}
public void setTvFix(TextView tvFix) {
this.tvFix = tvFix;
}
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 getTvName() {
return tvName;
}
public void setTvName(TextView tvName) {
this.tvName = tvName;
}
public TextView getTvTime() {
return tvTime;
}
public void setTvTime(TextView tvTime) {
this.tvTime = tvTime;
}
public RelativeLayout getRl_01() {
return rl_01;
}
public void setRl_01(RelativeLayout rl_01) {
this.rl_01 = rl_01;
}
}
}