Sie benötigen einen Empfänger Definition für jeden Typ in Ihrer Manifest-Datei wie:
<receiver android:name=".MyWidget" android:label="@string/medium_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/medium_widget_provider" />
</receiver>
<receiver android:name=".MyWidget" android:label="@string/large_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/large_widget_provider" />
</receiver>
Dies würde ermöglichen es Ihnen, die gleiche AppWidgetProvider
Klasse haben für mehrere Widgets verwendet werden, mit verschiedenen Widget-Namen und verschiedenen Größen definiert in die <appwidget-provider>
XML.
Nun, wenn Sie mehr Unterschiede in Ihren Widgets müssen als das, was in dem <appwidget-provider>
XML ist, würde ich eine Basis-Widget-Klasse erstellen, die alle das gemeinsame behavoir zwischen den verschiedenen Arten implementiert:
public abstract class MyBaseWidget extends AppWidgetProvider
Und dann jedes Ihrer Konkrete Implementierungen könnten MyBaseWidget erweitern. Dann in Ihrer Manifest-Datei würden Sie einen Empfänger Definition für jede Ihrer konkreten Implementierungen wie haben:
<receiver android:name=".MyMediumWidget" android:label="@string/medium_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/medium_widget_provider" />
</receiver>
<receiver android:name=".MyLargeWidget" android:label="@string/large_widget_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/large_widget_provider" />
</receiver>
Vielen Dank, dass seit !! Ich war sehr nah dran. Ich werde daran arbeiten und ich komme wieder mit einer Erfolgsmeldung oder mehr Fragen. Vielen Dank. – BarcaDroid
Hallo, danke für deine Antwort. Aber es scheint, dass ich den gleichen Widget-Anbieter nicht teilen kann. (Wenn ich das tue, wird nur das erste im Manifest angezeigt). Also, im Grunde wären mehrere Widget-Anbieter die Antwort für mich. Arbeitet jemand mit einem Widgetanbieter? – xandy
Yep, nur oben Anweisungen gefolgt und gefunden, es funktioniert nur, wenn ich andere Widget-Provider-Klassen angeben. Jedenfalls gut, danke an alle! :) – dimsuz