dimanche 19 avril 2015

Android ListItem selector

I have implemented CAB and MultiChoiceModeListener on ListView and everything works perfect except changing background color of the list item when selected (multi selection). Here is my code:


listView.xml:



<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#ebebeb"
android:dividerHeight="1dip"
android:listSelector="@drawable/list_selector"/>


list_selector:



<selector xmlns:android="http://ift.tt/nIICcg">
<item android:state_selected="true" android:drawable="@android:color/holo_green_light"/>
<item android:state_pressed="true" android:drawable="@android:color/holo_blue_light"/>
<item android:state_focused="true" android:drawable="@android:color/holo_blue_dark"/>
<item android:drawable="@android:color/white"/>
</selector>


Fragment:



l.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
l.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(android.view.ActionMode mode, int position, long id, boolean checked) {
int checkedCount = l.getCheckedItemCount();
mode.setTitle(checkedCount + " Selected");
}

@Override
public boolean onCreateActionMode(android.view.ActionMode mode, Menu menu) {
return true;
}

@Override
public boolean onPrepareActionMode(android.view.ActionMode mode, Menu menu) {
return false;
}

@Override
public boolean onActionItemClicked(android.view.ActionMode mode, MenuItem item) {
}

@Override
public void onDestroyActionMode(android.view.ActionMode mode) {
}
});

Aucun commentaire:

Enregistrer un commentaire