@Override public boolean onItemCheck(int position, Photo photo, final int selectedItemCount) { menuDoneItem.setEnabled(selectedItemCount > 0); if (maxCount <= 1) { List<String> photos = pickerFragment.getPhotoGridAdapter().getSelectedPhotos(); if (!photos.contains(photo.getPath())) { photos.clear(); pickerFragment.getPhotoGridAdapter().notifyDataSetChanged(); } return true; } if (selectedItemCount > maxCount) { Toast.makeText(getActivity(), getString(R.string.__picker_over_max_count_tips, maxCount), LENGTH_LONG).show(); return false; } if(maxCount > 1){ menuDoneItem.setTitle(getString(R.string.__picker_done_with_count, selectedItemCount, maxCount)); }else { menuDoneItem.setTitle(getString(R.string.__picker_done)); } return true; } });
@Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { super.onBackPressed(); return true; } if (item.getItemId() == R.id.done) { Intent intent = new Intent(); ArrayList<String> selectedPhotos = null; if(pickerFragment != null){ selectedPhotos = pickerFragment.getPhotoGridAdapter().getSelectedPhotoPaths(); } //当在列表没有选择图片,又在详情界面时默认选择当前图片 if(selectedPhotos.size() <= 0){ if(imagePagerFragment != null && imagePagerFragment.isResumed()){ // 预览界面 selectedPhotos = imagePagerFragment.getCurrentPath(); } } if(selectedPhotos != null && selectedPhotos.size() > 0){ intent.putStringArrayListExtra(KEY_SELECTED_PHOTOS, selectedPhotos); setResult(RESULT_OK, intent); finish(); } return true; } return super.onOptionsItemSelected(item); }
public void updateTitleDoneItem(){ if(menuIsInflated){ if(pickerFragment != null && pickerFragment.isResumed()){ List<String> photos = pickerFragment.getPhotoGridAdapter().getSelectedPhotos(); int size = photos == null ? 0 : photos.size(); menuDoneItem.setEnabled(size > 0); if(maxCount > 1){ menuDoneItem.setTitle(getString(R.string.__picker_done_with_count, size, maxCount)); }else { menuDoneItem.setTitle(getString(R.string.__picker_done)); } }else if(imagePagerFragment != null && imagePagerFragment.isResumed()){ //预览界面 完成总是可点的,没选就把默认当前图片 menuDoneItem.setEnabled(true); } } }
pickerFragment.getPhotoGridAdapter().setOnItemCheckListener(new OnItemCheckListener() { @Override public boolean onItemCheck(int position, Photo photo, final int selectedItemCount) {