Я последовал за руководство Android API, реализующее САВ и у меня есть несколько проблем:Android контекстной панель действий с пользовательским ListView не допуская множественный выбор
- Множественного выбор не существует
- выбранных элементов (строки) не окрашивается, чтобы указать, они выбраны
- Как изменить: [A] цвет САВ [B] Показать текст на САВ
выходной ток одиночный выбор, без окрашивания сырой и некоторые цвет по умолчанию для панели действий. Это мой код, где MainListAdapter является «регулярным» реализация пользовательских ListView адаптера, с настраиваемое представление для каждого элемента, и DataList это простые данные заполнить список с:
listview = (ListView)findViewById(R.id.listview);
listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listview.setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
//Here you can do something when items are selected/de-selected, such as update the title in the CAB
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
//Respond to clicks on the actions in the CAB (contextual action bar)
switch (item.getItemId()) {
case R.id.menu_delete:
deleteSelectedItems();
mode.finish(); //Action done, so close the CAB
return true;
case R.id.menu_open:
openSelectedItem();
mode.finish(); //Action done, so close the CAB
return true;
default:
return false;
}
}
private void openSelectedItem() {
// TODO Auto-generated method stub
}
private void deleteSelectedItems() {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
//Inflate the menu for the CAB
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.listmenu, menu);
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
//Here you can make any necessary updates to the activity when the CAB is removed. By default, selected items are deselected/unchecked.
//TODO refresh the list
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
//Here you can perform updates to the CAB due to an invalidate() request
return false;
}
});
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) {
//TODO open DisplayActivity
Toast.makeText(getApplicationContext(), "Open File", Toast.LENGTH_LONG).show();
}
});
listAdapter = new MainListAdapter(dataList, context);
listview.setAdapter(listAdapter);
майкл - пожалуйста, можете ли вы добавить, какой результат и что вам нужно, чтобы помочь тем, кто отвечает. – micstr
@micstr Спасибо, сделано. – michael