核心代码:
// ListView的单击事件
imgListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// 加载图片预览
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
bitmap = BitmapFactory.decodeFile(pathsList.get(arg2), options);
preImage.setImageBitmap(bitmap);
// String msg = "";
// for (int i = 0; i < isSelected.size(); i++) {
// if (isSelected.get(i) == true) {
// msg = msg + pathsList.get(i) + "第" + i + "张" + "\n";
// }
// }
//
// ShowMsg.showToast(getApplicationContext(), handler, msg);
/******* 直接点击ListView设置checkbox ********/
// ViewHolder vHollder = (ViewHolder) arg1.getTag();
// 在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。
// vHollder.checkBox.toggle();// 反转当前视图的选中状态
// 点击预览
// String text = "";
// String select_id = "";
// if (vHollder.checkBox.isChecked() == true) {
// isSelect[arg2] = true;
//
// } else {
// isSelect[arg2] = false;
// }
//
// for (int i = 0; i < isSelect.length; i++) {
// if (isSelect[i]) { // 如果该选项被选中
// text = text + pathsList.get(i) + "第" + i + "张" + "\n";
// select_id = select_id + i + ";";
// Toast.makeText(getApplicationContext(),
// "选中了:\n" + text, 5000).show();
// }
// }
// hasSelect = select_id;
// ListPicAdapter.isSelected.put(arg2, vHollder.checkBox
// .isChecked());
}
});
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// convertView为null的时候初始化convertView。
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listphoto, null);
holder.filename = (TextView) convertView
.findViewById(R.id.filename);
holder.imageView = (ImageView) convertView.findViewById(R.id.image);
holder.checkBox = (CheckBox) convertView.findViewById(R.id.cb);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.filename.setText(SDCard.getName(imgPaths.get(position)));
holder.imageView.setImageBitmap(photos.get(position).getBitmap());
holder.checkBox.setChecked(isSelected.get(position));
final CheckBox checkBox = holder.checkBox;
final int arg2 = position;
checkBox.setChecked(isSelected.get(position));
checkBox.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 记录CheckBox的状态
if (isSelected.get(arg2)) {
isSelected.put(arg2, false);
} else {
isSelected.put(arg2, true);
}
notifyDataSetChanged();
}
});
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
}
});
return convertView;
}