суббота, 17 декабря 2011 г.

Диалог выбора на Android или контекстное меню с картинками.

Задача выбора элемента из списка возникает в Android-приложениях регулярно. В принципе, для выбора элемента можно воспользоваться стандартным контекстным меню. Но у контекстного меню есть ряд ограничений:
  • В контекстном меню функции вызова (onCreateContextMenu) и обработки результатов(onContextItemSelected) реализуются в Activity.
  • Нельзя выбрать несколько элементов.
  • В контекстном меню показывается только название элемента. Картинки не отображаются.
Наиболее напрягает необходимость реализации функций в Activity. Типичная ситуация - вам нужна вспомогательная функция, которая предлагает пользователю что-нибудь выбрать из списка и затем выполняет действие над выбранным элементом. Такая функция может вызываться из множества разных Activity. И что, мне в каждой Activity реализовывать функции onCreateContextMenu и onContextItemSelected? Так не пойдет.

Лучше сделать диалог. А поскольку подобные диалоги нужны сплошь и рядом, нужно сделать более-менее универсальный диалог, который подойдет для выбора элементов в большинстве случаев. О реализации такого диалога и пойдет речь.