package com.kaorisan.adapter; import java.util.ArrayList; import com.kaorisan.R; import com.kaorisan.beans.Attachment; import android.view.View.OnClickListener; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.TextView; public class AttachmentAdapter extends ArrayAdapter<Attachment> implements DialogInterface.OnClickListener { private LayoutInflater inflater; private AlertDialog.Builder confirmDelete; private OnDeleteAndView callBackDeleteAndView; private static int isDelete = 1; private static int isView = 2; public AttachmentAdapter(Context context, int textViewResourceId, ArrayList<Attachment> objects,OnDeleteAndView onChangeDataCallBack) { super(context, textViewResourceId, objects); inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.callBackDeleteAndView = onChangeDataCallBack; this.confirmDelete = new AlertDialog.Builder(context); this.confirmDelete.setMessage(R.string.label_confirm_delete_attachment); this.confirmDelete.setCancelable(false); this.confirmDelete.setNegativeButton(R.string.txt_no,this); } @Override public View getView(int position, View convertView, ViewGroup parent) { final Attachment attachment = this.getItem(position); ViewHolder holder; if(convertView == null){ holder = new ViewHolder(); convertView = inflater.inflate(R.layout.attachment_item, null); holder.txtImageName = (TextView) convertView.findViewById(R.id.txtPhotoName); holder.imaButtonDelete = (ImageButton) convertView.findViewById(R.id.btnDelete); convertView.setTag(holder); } else{ holder = (ViewHolder) convertView.getTag(); } holder.txtImageName.setText(attachment.getFileName()); if(attachment.getIsLocal() == 0 || attachment.getIsLocal() == 2){ holder.imaButtonDelete.setVisibility(View.INVISIBLE); }else{ holder.imaButtonDelete.setVisibility(View.VISIBLE); holder.imaButtonDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { confirmDelete.setPositiveButton(R.string.txt_yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { callBackDeleteAndView.onDeleteItemAndView(attachment, isDelete); } }); confirmDelete.show(); Log.i("Name", attachment.getFileName()); } }); } OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(View v) { callBackDeleteAndView.onDeleteItemAndView(attachment,isView); } }; holder.txtImageName.setOnClickListener(onClickListener); return convertView; } public class ViewHolder{ TextView txtImageName; ImageButton imaButtonDelete; } @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } public interface OnDeleteAndView { void onDeleteItemAndView(Attachment attachment, int type); } }