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

我发现,我需要创建4个widget_provider_x_y.xml文件(x和y的值为2,2 2,3 3,2 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>

最佳答案

您不必复制WidgetProvider类n次即可获得n个窗口部件尺寸。像这样从主WidgetProvider类继承:

public class SimpleNoteWidgetProvider_3_2 extends SimpleNoteWidgetProvider {

}




public class SimpleNoteWidgetProvider_3_3 extends SimpleNoteWidgetProvider {

}

关于android - Android WidgetProvider复制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7759271/

10-09 12:41