У меня есть простой виджет домашнего экрана, который отображает список элементов. Поскольку я хочу поддерживать более старые устройства, вместо ListView я использую серию объектов TextView, которые «эмулируют» ListView.
Это работает очень хорошо, но я бы хотел назначить прослушиватель щелчков для этих элементов. В слушателе я хотел бы различать их и выполнять действие в зависимости от содержимого элемента.
Как это сделать? Поскольку setOnClickPendingIntent
принимает идентификатор представления, я не могу назначить отдельные намерения для отдельных элементов - все они имеют один и тот же идентификатор, поэтому обработчик не будет знать, какой элемент был выбран. Я могу создавать экземпляры RemoteViews только из макета XML, поэтому не могу добавлять элементы с разными идентификаторами (мне нужно создать много файлов макетов, отличающихся только идентификатором макета).
Начиная с Honeycomb, существует метод setOnClickFillInIntent
, который приемлемым образом решает мою проблему, но я не могу использовать его, если хочу, чтобы мой виджет работал на Gingerbread.