我开发了一个具有某些功能的小部件,但有些人要求我创建一个类似的小部件,但功能略有不同。两个小部件看起来都一样,但行为略有不同。我尝试将第二个小部件的不同接收器添加到我的清单文件中。我还创建了一个单独的小部件提供程序xml文件,我有一个单独的类,它实现了具有不同功能的AppWidgetProvider。然而,当我将第二个小部件添加到主页时,它似乎使用了第一个小部件的功能,而不是新功能。
以下是一些代码:
我必须分开扩展AppWidgetProvider的类(每个小部件一个)。类名是iContacts和iContactsQuickDial。
这两个类之间的区别是OnReceive方法,它实现了不同的逻辑。其他方法完全相同。
清单接收者:
<receiver android:name=".iContacts" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.CONFIGURATION_CHANGED" />
<action android:name="com.mesa.icontacts.ConfigureContacsActivity.ACTION_UPDATE_WIDGET" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_1" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_2" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_3" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_4" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/icontacts_widget_provider" />
</receiver>
<receiver android:name=".iContactsQuickDial"
android:label="@string/app_name_quick_dial">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.CONFIGURATION_CHANGED" />
<action android:name="com.mesa.icontacts.ConfigureContacsActivity.ACTION_UPDATE_WIDGET" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_1" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_2" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_3" />
<action android:name="com.mesa.icontacts.iContacts.ACTION_WIDGET_SHOW_CONTACT_4" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/icontacts_quick_dial_widget_provider" />
</receiver>
两个小部件都使用相同的配置活动,因为此逻辑不会更改。
两家提供商: icontacts_widget_provider:
<?xml version="1.0" encoding="UTF-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="300dip"
android:minHeight="75dip"
android:initialLayout="@layout/main"
/>
icontacts_quick_dial_widget_provider
<?xml version="1.0" encoding="UTF-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="300dip"
android:minHeight="75dip"
android:initialLayout="@layout/main"
/>
请注意,两个小部件的布局必须相同
任何想法都会受到赞赏吗?
谢谢