To answer your question number 2: The highlighting is called "activated background" and is logically different from "checked item, one of possibly several to perform actions on".
Marking an item "checked", at least with your MODAL selection mode, will start the action mode, that's just how it works by design. So either don't use MODAL in your list view (as Mark already suggested), or don't treat item selection and item activation (wrt. the background in a master/detail layout) as being logically identical. They are not. I remember seeing bits of code to highlight / activate list items in one of the early fragment samples (which accompanied a write-up by Dianne Hackborn), it had quotes from Shakespeare's plays in it.... if this helps.... -- K 2012/11/1 Jim Stewart <[email protected]> > In portrait mode I have one Fragment List View (A). When I click on the > item it launches a new activity which in turn loads a new fragment (B) to > display the selected record. When I 'LongHold' on one item in (A) the CAB > launches where I then 'Single Click' on lines to add/subtract lines to the > 'Number of Selected' and have an option to delete. All is good in this > mode. > > In landscape mode I have something similar working except the 'B' fragment > is launched in its own Frame so it appears alongside the list fragment (A). > > The problem I am having is trying to 'highlight' the item I picked from > the list (A) for the details being displayed (B). > > public void onListItemClick(ListView l, View v, int position, long id) > { > super.onListItemClick(l, v, position, id); > mListener.displayMarkers(id); > getListView().setItemChecked(position, true); > } > > As soon as I setItemChecked the Contextual action bar launches. I only > want the Contextual action bar to launch on the initial 'long click' same > as it does in portrait mode. > > I checked how Google are doing this and in GMAIL inbox landscape on a > tablet, single click highlights the item in the list and displays the email > in the detail 'frame'. a 'long click' launches the CAB for the line you > selected. You can continue to single click on lines to see the details but > you 'long click' to add items to the CAB. Interestingly the cell > background is different based on whether it is selected or long clicked in > the CAB. > > The contextual action bar is configured as follows > > getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); > getListView().setMultiChoiceModeListener(multiChoiceModeListener); > > The code for the multiCoiceModeListener is as follows > > MultiChoiceModeListener multiChoiceModeListener = new > MultiChoiceModeListener() { > > @Override > public void onItemCheckedStateChanged(ActionMode mode, int position, > long id, boolean checked) { > mListener.removeFragmentWhenCABStarted(); > if (checked) { > ++mNumberOfSelectedItems; > } else { > --mNumberOfSelectedItems; > } > // Refresh the menu - Edit is only available when one item is > // selected > mode.invalidate(); > mode.setTitle(String.valueOf(mNumberOfSelectedItems) + " selected"); > } > > @Override > public boolean onActionItemClicked(ActionMode mode, MenuItem item) { > // Respond to clicks on the actions in the CAB > switch (item.getItemId()) { > case R.id.menu_delete: > confirmDelete(); > return true; > case R.id.menu_edit: > edit(); > return true; > default: > return false; > } > } > > @Override > public boolean onCreateActionMode(ActionMode mode, Menu menu) { > // Inflate the menu for the CAB > MenuInflater inflater = mode.getMenuInflater(); > inflater.inflate(R.menu.main_fragment_context_menu, menu); > mode.setTitle(String.valueOf(mNumberOfSelectedItems) + " selected"); > mActionMode = mode; > return true; > } > > @Override > public void onDestroyActionMode(ActionMode mode) { > mNumberOfSelectedItems = 0; > } > > @Override > public boolean onPrepareActionMode(ActionMode mode, Menu menu) { > menu.findItem(R.id.menu_delete).setVisible(true); > menu.findItem(R.id.menu_edit).setVisible(true); > if (mNumberOfSelectedItems > 1) { > menu.findItem(R.id.menu_edit).setVisible(false); > } > return true; > } > }; > > > > So to the questions. > > 1. How would you control the CAB based on Long Holds the way Google are > doing it? > 2. How can I select a line (or change its background) without launching > the CAB? > 3. Am I over thinking this and you have a much easier solution > > Any assistance would be appreciated. > > Thanks, > > Jim > > > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

