Wie aktualisiere ich die Widget-Listenansicht, wenn ich auf die Schaltfläche "Aktualisieren" klicke?
Ich erstelle einWidget
mitListView
drauf. Anzeige des Ergebnisses aus demWeb Service
in demListView
es ist okay. Ich habe eine Klasse erstellt, die mein @ isWidgetService
das erstreckt sich aufRemoteViewsService
und amRemoteViewsFactory
Ich rufe meineListViewProvider
das hat dasWeb Service
. Ich habe eine Aktualisierungsschaltfläche hinzugefügt, die beim Klicken das @ aufrufWidgetService
erneut, um die Listenansicht zu erstellen.
Hier ist mein Code in meinemWidgetProvider
public class WidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; ++i) {
RemoteViews remoteViews = updateWidgetListView(context,
appWidgetIds[i]);
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds[i], R.id.listViewWidget);
appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
private RemoteViews updateWidgetListView(Context context, int appWidgetId) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
//ListView
Intent svcIntent = new Intent(context, WidgetService.class);
svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME)));
remoteViews.setRemoteAdapter(appWidgetId, R.id.listViewWidget, svcIntent);
remoteViews.setEmptyView(R.id.listViewWidget, R.id.empty_view);
//REFRESH
PendingIntent updatePendingIntent = PendingIntent.getService(context, 0, svcIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.ivRefreshWidget, updatePendingIntent);
return remoteViews;
}
Wie Sie im Aktualisierungsteil sehen können, habe ich versucht, @ zu verwendePendingIntent
um das @ anzurufWidgetService
aber beim Testen wird die Liste nicht aktualisiert. Vielen Dank für die Hilfe im Voraus.