Implementuję widżet aplikacji i chciałbym móc zmienić właściwość pojedynczego widoku w układzie widżetu, bez odbudowywania wszystkich RemoteViews
od zera, co wiąże się z ładowaniem XML itp. i które nie jest konieczne w pewnych okolicznościach. Czy istnieje sposób na powiedzenie "zaktualizuj właściwość X w widoku zidentyfikowanym przez konkretny identyfikator w bieżącym układzie widżetów"? Zauważyłem, że istnieje metoda partiallyUpdateAppWidget
w klasie AppWidgetManager
, ale nie mogę zrozumieć, ani jeśli jest ona przeznaczona do tego celu ani w jaki sposób należy jej użyć. Czy możesz mi pomóc lub wskazać mi przydatne łącze lub przykład?Jak częściowo zaktualizować widoki w widgecie aplikacji bez przebudowywania wszystkich RemoteViews
Q
Jak częściowo zaktualizować widoki w widgecie aplikacji bez przebudowywania wszystkich RemoteViews
5
A
Odpowiedz
3
Tak, można użyć metody partiallyUpdateAppWidge
t w klasie AppWidgetManager
. Jako przykład, jeśli chcesz zaktualizować widok tekstowy wewnątrz widget:
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
rv = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
rv.setTextViewText(R.id.ofTextViewInWidgetLayoutXML, "Hello World");
appWidgetManager.partiallyUpdateAppWidget(appWidgetIds, rv);
Ref: Just update a widget RemoteViews instead of completly creating a new one?