Android WidgetProvider重复

时间:2011-10-13 19:15:05

标签: android widget

我制作了一个具有可伸缩布局的简单小部件,并希望允许用户使用相同的布局和相同的小部件提供程序类来放置具有不同大小的小部件。

我发现,我需要创建4个widget_provider_x_y.xml文件(x和y是值2,2 2,3 3,3 3,3),除宽度和高度外,它们非常相似。

我也发现,我需要创建完全相同的WidgetProvider类的多个副本(名称除外)。如果我尝试使用单个WidgetProvider类 - 我将在窗口小部件列表中只看到一个窗口小部件。

我有一个问题: - 为什么我需要复制java类?它是相同的,因为布局是相同的,我不希望在我需要同时更新的项目中有4个以上的文件。

这是我的androidManifest.xml的一部分:

    <receiver android:name=".SimpleNoteWidgetProvider_3_2" android:label="@string/app_widget_3_2">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            <action android:name="ACTION_WIDGET_UPDATE_FROM_ACTIVITY"/>
            <action android:name="ACTION_WIDGET_UPDATE_FROM_WIDGET"/>
        </intent-filter>
        <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_provider_3_2"/>
    </receiver>
    <receiver android:name=".SimpleNoteWidgetProvider_3_3" android:label="@string/app_widget_3_3">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            <action android:name="ACTION_WIDGET_UPDATE_FROM_ACTIVITY"/>
            <action android:name="ACTION_WIDGET_UPDATE_FROM_WIDGET"/>
        </intent-filter>
        <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_provider_3_3"/>
    </receiver>

1 个答案:

答案 0 :(得分:1)

您不必复制WidgetProvider类n次以获得n个小部件大小。只需继承主WidgetProvider类:

public class SimpleNoteWidgetProvider_3_2 extends SimpleNoteWidgetProvider {

}

public class SimpleNoteWidgetProvider_3_3 extends SimpleNoteWidgetProvider {

}