看起来像我的#$#%$%#$接收者不是清单中的应用元素
您好
我刚创建了helloworld appwidget,看看它的工作原理。我在adroid开发站点上关注了dev示例。但由于某种原因,小部件不希望在小部件列表中显示。
的AndroidManifest.xml
<receiver android:name="VoiceRIAWidget" android:label="Voice RIA">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/appwidget_info" />
</receiver>
appwidget_info.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:label="Voice RIA" android:minWidth="50dp" android:minHeight="50dp"
android:updatePeriodMillis="86400000" android:initialLayout="@layout/appwidget">
</appwidget-provider>
VoiceRIAWidget
public class VoiceRIAWidget extends AppWidgetProvider
{
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds)
{
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++)
{
int appWidgetId = appWidgetIds[i];
CharSequence text = "Hello";
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.appwidget);
views.setTextViewText(R.id.appwidget_text, text);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
appwidget.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/appwidget_text" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textColor="#ff000000" />
我无法看到我错过了什么,但是没有列表。
答案 0 :(得分:7)
我遇到了同样的问题。我的错误是,我将接收器标签放在我的清单标签内,当我应该把它放在我的应用程序标签内。 这是我无法工作的XML:
<manifest....>
....
<receiver ...>
...
</receiver>
<application ...>
...
</applciation>
</manifest>
这是我干得好的XML:
<manifest...>
....
<application...>
...
<receiver...>
...
</receiver>
</application>
</manifest>
希望它可以帮到你!
答案 1 :(得分:5)
我遇到了同样的问题。我的错误是,我构建了一个应用程序小部件,作为安装在SD卡上的现有应用程序的补充。将应用程序移动到手机上即可修复它。
答案 2 :(得分:0)
遇到了类似的问题。我把元数据放在你已经正确完成的接收器之外。