/** * get the current position of the selected drawer element * * @return */ public int getCurrentSelectedPosition() { return mDrawerBuilder.mAdapter.getSelections().size() == 0 ? -1 : mDrawerBuilder.mAdapter.getSelections().iterator().next(); }
@Override public void onSelectionChanged(SimpleItem item, boolean selected) { Log.i("FastAdapter", "SelectedCount: " + mFastAdapter.getSelections().size() + " ItemsCount: " + mFastAdapter.getSelectedItems().size()); } });
@Override public boolean onClick(View v, IAdapter<SimpleItem> adapter, @NonNull SimpleItem item, int position) { Toast.makeText(v.getContext(), "SelectedCount: " + mFastAdapter.getSelections().size() + " ItemsCount: " + mFastAdapter.getSelectedItems().size(), Toast.LENGTH_SHORT).show(); return false; } });
@Override public void onClick(View v, int position, FastAdapter<RadioButtonSampleItem> fastAdapter, RadioButtonSampleItem item) { if (!item.isSelected()) { Set<Integer> selections = fastAdapter.getSelections(); if (!selections.isEmpty()) { int selectedPosition = selections.iterator().next(); fastAdapter.deselect(); fastAdapter.notifyItemChanged(selectedPosition); } fastAdapter.select(position); } } }
@Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { mUndoHelper.remove(findViewById(android.R.id.content), "Item removed", "Undo", Snackbar.LENGTH_LONG, mFastAdapter.getSelections()); //as we no longer have a selection so the actionMode can be finished mode.finish(); //we consume the event return true; }
/** * helper method to get all selections from the ItemAdapter's original item list * * @return a Set with the global positions of all selected Items */ public Set<Integer> getSelections() { if (mOriginalItems != null) { Set<Integer> selections = new HashSet<>(); int adapterOffset = mItemAdapter.getFastAdapter().getPreItemCountByOrder(mItemAdapter.getOrder()); for (int i = 0, size = mOriginalItems.size(); i < size; i++) { Item item = mOriginalItems.get(i); if (item.isSelected()) { selections.add(i + adapterOffset); } } return selections; } else { return mItemAdapter.getFastAdapter().getSelections(); } }
@Test public void select() throws Exception { adapter.withSelectable(true); itemAdapter.set(TestDataGenerator.genTestItemList(100)); assertThat(adapter.getSelectedItems().size()).isEqualTo(0); assertThat(adapter.getSelections().size()).isEqualTo(0); adapter.select(10); assertThat(adapter.getSelectedItems().size()).isEqualTo(1); assertThat(adapter.getSelectedItems().iterator().next().getIdentifier()).isEqualTo(10); assertThat(adapter.getSelections().size()).isEqualTo(1); assertThat(adapter.getSelections().iterator().next()).isEqualTo(10); }
case android.R.id.home: Toast.makeText(getApplicationContext(), "selections = " + fastAdapter.getSelections(), Toast.LENGTH_LONG).show(); onBackPressed(); return true;
int selection = mAdapter.getSelections().size() == 0 ? -1 : mAdapter.getSelections().iterator().next(); mOnDrawerItemClickListener.onItemClick(null, selection, getDrawerItem(selection));
return true; case R.id.item_change: for (Integer pos : (Iterable<Integer>) mFastAdapter.getSelections()) { ImageItem i = (ImageItem) mItemAdapter.getAdapterItem(pos); i.withName("CHANGED");