1.设置列表视图的选择模式
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.HONEYCOMB){
//使用浮动上下文菜单
registerForContextMenu(listView);
}else{
//使用多选模式
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
}
2.
if(Build.VERSION.SDK_INT<Build.VERSION_CODES.HONEYCOMB){
//使用浮动上下文菜单
registerForContextMenu(listView);
}else{
//使用多选模式
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onDestroyActionMode(ActionMode arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.list_item_context, menu);
//必须为true 否则 多选模式无效
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.action_delete:
for (int i = adapter.getCount()-1; i <=0 ; i--) {
if (listView.isItemChecked(i)) {
Log.e("ContextItemSelect", "you have deletes"+i);
}
}
adapter.notifyDataSetChanged();
return true;
default:
return false;
}
}
@Override
public void onItemCheckedStateChanged(ActionMode arg0, int arg1, long arg2,
boolean arg3) {
// TODO Auto-generated method stub
}
});
3改变已经激活的视图的显示背景
创建state list drawable资源,在drawable目录下
<?xml version="1.0" encoding="utf-8"?>
<Selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@android:color/darker_gray"
android:state_activated="true">
</item>
</Selector>
state_activated的属性是true表明只有选中状态的会变成设置的颜色darker_gray否则如果为false,则处于未激活的状态会变成设置的颜色
然后 改变列表项的显示背景,是列表项的background变为上面设置的drawable。