onGetViewFactory wird für mehrere Widgets nur einmal aufgerufen
Ich habe ein Appwidget welches benutztListView
. Ich habe eine Klasse erstellt, die erweitert wirdRemoteViewsService
:
public class AppWidgetService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
return (new AppWidgetListFactory(this.getApplicationContext(), intent));
}
}
In meinemAppWidgetProvider
Ich nenne die folgende Methode für jede Instanz des Widgets (für jedeappWidgetId
):
private static void fillInList(RemoteViews widget, Context context, int appWidgetId) {
Intent intent = new Intent(context, AppWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
widget.setRemoteAdapter(R.id.appwidget_listview, intent);
}
Der Erbauer derAppWidgetListFactory
public AppWidgetListFactory(Context context, Intent intent) {
this.context = context;
appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
System.out.println("New TVAPWLF for: " + appWidgetId);
trains = WidgetData.getInstance().widgetMap.get(appWidgetId);
}
Nun ist das Problem, dass diefillInList
Methode wird genauso oft aufgerufen, wie es Instanzen des Widgets gibt, aber dieonGetViewFactory
Methode wird nur einmal aufgerufen. Dies führt dazu, dass alle Widgets die gleichen Daten anzeigen.
Wie kann ich das beheben?