RemoteViews onDataSetChanged перестает работать на Android API 36. Как перейти на RemoteViews.RemoteCollectionItems?Android

Форум для тех, кто программирует под Android
Anonymous
RemoteViews onDataSetChanged перестает работать на Android API 36. Как перейти на RemoteViews.RemoteCollectionItems?

Сообщение Anonymous »

Раньше звонил

Код: Выделить всё

appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.list_view);
запускает метод onDataSetChanged() RemoteViewsService.RemoteViewsFactory.
Когда срабатывает onDataSetChanged(), мы начинаем раздувать макет и заполнять каждый компонент представления правильными значениями данных.
Например, вот как мы визуализируем первую строку:

Код: Выделить всё

// RemoteViews for 1st row.
private RemoteViews getCalendarRemoteViews() {
RemoteViews remoteViews = new RemoteViews(PACKAGE_NAME, getCalendarWidgetResourceId());

// Initialise previous and forward buttons.
remoteViews.setImageViewResource(R.id.previous_button, calendarLeftArrowIconResourceId);
remoteViews.setImageViewResource(R.id.forward_button, calendarRightArrowIconResourceId);

...

// Initialise label "SUN", "MON", "TUE", ...
for (int i = 0; i < weekTextViewIds.length; i++) {
final String string = com.yocto.wenote.reminder.Utils.toShortString(dayOfWeek);

final int weekTextViewId = weekTextViewIds[i];

remoteViews.setTextViewText(
weekTextViewId,
string.toUpperCase()
);
}
...
}
Изображение

Однако это поведение перестало работать в Android API 36. Он по-прежнему работает на Android API 35. Я что-то упустил?
Единственный пример кода в документации:
https://developer.android.com/develop/u ... ollections

Код: Выделить всё

remoteView.setRemoteAdapter(
R.id.list_view,
new RemoteViews.RemoteCollectionItems.Builder()
.addItem(/* id= */ ID_1, new RemoteViews(context.getPackageName(), R.layout.item_type_1))
.addItem(/* id= */ ID_2, new RemoteViews(context.getPackageName(), R.layout.item_type_2))
...
.setViewTypeCount(itemLayouts.size())
.build()
);
В этом примере показано, как каждая строка раздувает макет, но не показано, как мы должны заполнять каждую строку правильными значениями данных.
Есть ли минимальный рабочий пример перехода с notifyAppWidgetViewDataChanged на RemoteViews.RemoteCollectionItems?
Спасибо. ты.

Подробнее здесь: https://stackoverflow.com/questions/798 ... migrate-to

Вернуться в «Android»