i working on android app contextual action bar oncreateactionmode not being called, nor listview item being set selected, nor itemcheckstatechanged listener working.
below how creating action mode:
adapterview.onitemlongclicklistener monitemlongclicklistener = new adapterview.onitemlongclicklistener() { @override public boolean onitemlongclick(adapterview<?> parent, view view, int position, long id) { if (mactionmode != null) { return false; } toast.maketext(getactivity(), "long click", toast.length_long).show(); lstrooms.setonitemclicklistener(null); mactionmode = getactivity().startactionmode(mactionmodecallback); view.setselected(true); return true; } };
below how set onlongitemclicklistener
lstrooms.setonitemlongclicklistener(monitemlongclicklistener);
below actionmode callback.
private actionmode.callback mactionmodecallback = new actionmode.callback() { @override public boolean oncreateactionmode(actionmode mode, menu menu) { lstrooms.setchoicemode(listview.choice_mode_multiple_modal); lstrooms.setmultichoicemodelistener(new abslistview.multichoicemodelistener() { @override public void onitemcheckedstatechanged(actionmode mode, int position, long id, boolean checked) { toast.maketext(getactivity(), "clicked", toast.length_long).show(); } @override public boolean oncreateactionmode(actionmode mode, menu menu) { menuinflater inflater = mode.getmenuinflater(); inflater.inflate(r.menu.room_context_menu, menu); mode.settitle("hello world"); return true; } @override public boolean onprepareactionmode(actionmode mode, menu menu) { return false; } @override public boolean onactionitemclicked(actionmode mode, menuitem item) { return false; } @override public void ondestroyactionmode(actionmode mode) { } }); return true; } @override public boolean onprepareactionmode(actionmode mode, menu menu) { return false; } @override public boolean onactionitemclicked(actionmode mode, menuitem item) { return false; } @override public void ondestroyactionmode(actionmode mode) { mactionmodecallback = null; } };
none of method such oncreateactionmode called title bar isn't set, although action bar turn black, reason, know the text should white if actionmode.settitle("hello") after create object works, call functions aren't working.
as mentioned other problem list view item doesn't show selected when view.setselected(true)
i've tried lstroom.setitemchecked(position, true)
thanks can provide.
i've managed figured out problem was.
i had misunderstanding of how multi choice mode listener worked. doing register onitemlongclicklistener within listener, set multi choice, in there create actionmode.callback , create multichoice listener. didn't realise mulitichoicelistener can create actionmode.callback conflicting each other.
instead rid of of that, , create multichoicemodelistener creates contextual action bar itself.