Mehrere Widgets in einer apk

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von egon232, 02.12.2010.

  1. egon232, 02.12.2010 #1
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    Hallo,

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

    Grüße
     
  2. egon232, 03.12.2010 #2
    egon232

    egon232 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    keiner ne idee?
     
  3. devmil, 04.12.2010 #3
    devmil

    devmil Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    56
    Registriert seit:
    04.12.2010
    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
     
    egon232 bedankt sich.

Diese Seite empfehlen