metoda Więc onUpdate wzywaAndroid Widget ekranu głównego: RemoteViews setRemoteAdapter (...) metoda nie działa na API 11+
remoteViews.setRemoteAdapter(id, R.id.listview, intent)
w celu zastosowania adaptera do pogrupowanych w widgecie.
znajduje się przycisk w nagłówku widget, który może zmienić zestaw danych, który jest wyświetlany przez ListView (myślę Skrzynka odbiorcza, nadawcza, zagrała, etc dla hipotetycznego widget e-mail). Po kliknięciu tego przycisku użytkownik przechodzi do działania, które pozwala mu wybrać zestaw danych do wyświetlenia. Po dokonaniu wyboru, następujący kod jest uruchamiany:
Intent intent = new Intent(this, WidgetReceiver.class);
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
intent.putExtra("notify", true);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {R.xml.widget_provider});
sendBroadcast(intent);
To skutecznie wywołuje metodę onUpdate w klasie AppWidgetProvider widgetu. Jednak gdybym miał przełączać różne typy zestawów danych, po 2-3 zmianach preferencji, metoda setRemoteAdapter
po prostu przestaje działać. Mam obszernie zalogowany proces, a metoda, która ma wywoływać usługę, która z kolei ładuje do klasy RemoteViewsService.RemoteViewsFactory
, aby zapełnić widget i jego adapter, nie robi żadnej z tych rzeczy. Pierwsze kilka razy zmienić preferencje, działa zgodnie z oczekiwaniami. Ale potem przestaje.
Czy ktoś ma pojęcia, co się tutaj dzieje?
HI JMRboosties. Czy byłbyś na tyle uprzejmy, aby udostępnić swój kod? Próbuję również umieścić ListView w widgecie ekranu głównego ORAZ dodać nagłówek za pomocą kilku przycisków (które mogą zmienić zestaw danych wyświetlany przez listę). Mam kłopot z rejestrowaniem kliknięć przycisków nagłówka i aktualizowaniem odsłon. Txs – Hubert
Wydaje się, że dzieje się tak w przypadku wszystkich aktualizacji - w końcu Android się nudzi i po prostu zakłada, że masz poprawne wyniki:/Dzięki @JMRboosties :) – Graeme
wydaje się to nie działać po aktualizacji, a twoja aplikacja jest zastąpiona przez nowszą wersję, wszelkie sugestie rozwiązać? – 2cupsOfTech