package com.mfh.comna.utils.sdimage;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2014/10/21.
* 工单界面展示的GridAdapter
*/
public class MyGridAdapter extends GridAdapter{
public static final int REQUEST_CODE_LISTIMAGEACTIVITY = 101;
public static final int REQUEST_CODE_EDITIMAGEACTIVITY = 102;
private AlertDialog.Builder builder;
public MyGridAdapter(Activity context, List<Image> images, List<String> checkImages) {
super(context, images, checkImages);
builder = new AlertDialog.Builder(context);
}
@Override
protected void fillData(final int position, ViewHolder holder) {
super.fillData(position, holder);
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (position == 0) {
Intent intent = new Intent(context, ListImageActivity.class);
context.startActivityForResult(intent, REQUEST_CODE_LISTIMAGEACTIVITY);
}
else {
Intent intent = new Intent(context, ZoomImageActivity.class);
intent.putExtra("imagePath", images.get(position - 1).getPath());
context.startActivity(intent);
}
}
});
if (position != 0) {
holder.image.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
builder.setItems(
new String[]{"删除", "编辑"}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
images.remove(images.get(position - 1));
MyGridAdapter.this.notifyDataSetChanged();
break;
case 1:
Intent intent = new Intent(context,EditImageActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable(DATA_IMAGE, (Serializable) images);
intent.putExtras(bundle);
context.startActivityForResult(intent, REQUEST_CODE_EDITIMAGEACTIVITY);
break;
}
}
}).setTitle("图片操作").create().show();
return true;
}
});
}
holder.imageCb.setVisibility(View.GONE);
}
public void onResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_LISTIMAGEACTIVITY) {
if (data == null || data.getExtras() == null)
return;
Bundle bundle = data.getExtras();
List<String> images = (List<String>) bundle.getSerializable(DATA_IMAGE);
for (String path : images) {
MyGridAdapter.this.addData(new Image(path));
}
MyGridAdapter.this.notifyDataSetChanged();
}else if(requestCode == REQUEST_CODE_EDITIMAGEACTIVITY){
if (data == null || data.getExtras() == null)
return;
Bundle bundle = data.getExtras();
List<String> images = (List<String>) bundle.getSerializable(DATA_IMAGE);
MyGridAdapter.this.removeData(images);
MyGridAdapter.this.notifyDataSetChanged();
}
}
/**
* 将gridview中的图片转化问文件
* @return
*/
public List<File> collectCameraFiles() {
List<File> files = null;
for (int ii = 0; ii < images.size(); ii++) {
File file = new File(images.get(ii).getPath());
if (files == null)
files = new ArrayList<File>();
files.add(file);
}
return files;
}
}