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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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