Ich schreibe ein Android-Soundboard, mit dem der Benutzer mehrere Desktop-Widgets erstellen kann, eines für jeden Ton. Ich verwende eine Aktivität für den Benutzer, um auszuwählen, für welchen Sound er das Widget erstellen möchte. Für jedes erstellte Widget speichere ich eine gemeinsame Einstellung in Form von key => "WIDGET_FILENAME_"+widgetId, value=> fileName
Um die Sounds zu spielen, habe ich die onRecieve
-Methode für die widgetProvider-Klasse überschrieben. Wenn der Desktop-Widget angeklickt wird, löst es sich um eine Sendung zu dieser Methode, wich das Widget-ID aus der Absicht bekommt und lädt dann die gemeinsame Vorliebe mit dem Widget zugeordnet:
Android - Mehrere appWidgets spielen verschiedene Sounds
int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
Das Problem ist: Die widgetId ist immer dasselbe, kein Mather, welches Widget angeklickt wird, wodurch der gleiche Sound wiedergegeben wird.
Irgendeine Idee oder Anleitung zu diesem Thema?
Großartig! hat mir wirklich geholfen, das gleiche Problem zu lösen, das ich hatte. Der interessante Teil ist, dass der Unterschied darin lag, die appWidgetId als requestCode zu verwenden, während in der Dokumentation steht, dass dies nie verwendet wird ... – Muzikant
@Rabi, haben Sie einen vollständigeren Code, den Sie teilen könnten? Ich habe versucht, dies in meinen Code zu implementieren und es funktioniert einfach nicht. http://stackoverflow.com/questions/10607518/android-appwidget-multiple-instances – MrGibbage