Включить / отключить выбор элемента при просмотре списка в режиме множественного выбора
У меня зарегистрирован список для контекстного меню в режиме множественного выбора:
private void initListViewForContextMenu(){
log.d("FilesFragment", "initListViewForContextMenu()");
ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() { ...
Проблема в том, что не все элементы моего представления должны быть доступны для выбора, только те, которые показывают специальный значок, должны быть доступны для выбора. Я не знаю, как это реализовать, я определилOnItemLongClickListener
:
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter, View view, int position, long id) {
Log.d("FilesFragment", "OnItemLongClickListener.onItemLongClick at pos " + position);
PfmDocument doc = (PfmDocument)adapter.getItemAtPosition(position);
if (doc.isOnBasket()){
Log.d("FilesFragment", "OnItemLongClickListener.onItemLongClick detected in basket");
ListView lv = (ListView) adapter;
lv.setItemChecked(position, false);
}
return false;
}
});
но этот слушатель никогда не называется.
Я также пытался установитьOnLongClickListener
для представления строк в адаптере, но выполнение этого обычного щелчка также отключается, даже если контекстное меню закрыто (не в режиме выбора).
if (doc.isOnBasket()){
rowView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false; // do nothing, already in basket
}
});
//}