Mehrere Widgets in einer apk

E

egon232

Ambitioniertes Mitglied
1
Hallo,

wie kann ich festlegen, dass bei der Installation von einer APK, mehrere Widgets zur Auswahl stehen?

Grüße
 
keiner ne idee?
 
Hallo,

du musst für jedes Widget eine extra xml Definition bauen und diese in deiner Manifest-Datei verlinken.

Hier ist die Definition in einer meiner Apps. Ich habe die Namen so geändert, dass überall "MyWidget" steht. Nein, die App heißt nicht so ;)

Die App hat ein Widget das mehrere Größen unterstützt.
mywidget_info_4_1, mywidget_info_2_1 und mywidget_info_1_1 sind jeweils Windget-Informationsdateien.

Jeder Widget-Eintrag braucht eine eigene Receiver-Klasse. In meinem Fall (da sich ja nur die Größe ändert) habe ich eine Basisklasse gebaut (MyWidgetBase) von der MyWidget_4_1, MyWidget_2_1 und MyWidget_1_1 einfach nur ableiten.

Auszug aus der Manifest Datei
Code:
<receiver android:name="MyWidget_4_1" android:icon="@drawable/icon"
	android:label="MY WIDGET (4x1)">
	<intent-filter>
		<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
	</intent-filter>
	<meta-data android:name="android.appwidget.provider"
		android:resource="@xml/mywidget_info_4_1"></meta-data>
</receiver>
<receiver android:name="MyWidget_2_1" android:icon="@drawable/icon"
	android:label="MY WIDGET (2x1)">
	<intent-filter>
		<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
	</intent-filter>
	<meta-data android:name="android.appwidget.provider"
		android:resource="@xml/mywidget_info_2_1"></meta-data>
</receiver>
<receiver android:name="MyWidget_1_1" android:icon="@drawable/icon"
	android:label="MY WIDGET (1x1)">
	<intent-filter>
		<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
	</intent-filter>
	<meta-data android:name="android.appwidget.provider"
		android:resource="@xml/mywidget_info_1_1"></meta-data>
</receiver>
mywidget_info_4_1.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
	android:minHeight="72dip" android:minWidth="318dip"
	android:updatePeriodMillis="30000"
	android:configure="de.mywidget.MyWidgetPreferences"
	android:initialLayout="@layout/mywidgetlayout">
</appwidget-provider>

Ich hoffe, das hilft dir weiter.

Devmil
 
  • Danke
Reaktionen: egon232

Ähnliche Themen

2
Antworten
6
Aufrufe
225
24559
2
R
Antworten
4
Aufrufe
712
Rapidoman
R
M
Antworten
2
Aufrufe
612
Mozart40
M
Zurück
Oben Unten