基本小部件:已列出但无法添加到主屏幕

时间:2014-03-20 10:56:50

标签: android android-widget

我是第一次检查如何制作小工具应用。我想要做的第一件事是在主屏幕上添加一个小部件,一个带有静态文本的基本文本视图。没别了。

阅读guide之后,我尝试构建一个。我发现系统列出了小部件,我正常运行配置活动。但是当我将小部件拖放到主屏幕时,没有任何反应。我不知道在哪里调试,当我调试我的Widgetprovider类时看起来都很好(资源不为空,视图得到更新)所以我不知道在哪里查找错误消息。

有什么问题?

至少在某个方向看哪个地方会非常感激!

这是清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tizanacode.ExJakdojade">

<application android:allowBackup="true"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">

    <activity
        android:name="WidgetConfigurationActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver
        android:icon="@drawable/ic_launcher"
        android:label="Watched Line"
        android:name="ExJakdoJade" >
        <intent-filter >
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/ex_jakdojade_info" />
    </receiver>

</application>

这是提供者类:

public class ExJakdoJade extends AppWidgetProvider {

private static final String ACTION_CLICK = "ACTION_CLICK";

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

    // Get all ids
    ComponentName thisWidget = new ComponentName(context,
            ExJakdoJade.class);
    /*int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
    for (int widgetId : allWidgetIds) {*/
    for (int widgetId : appWidgetIds) {
        // Create some random data
        int number = (new Random().nextInt(100));

        RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
                R.layout.layout);
        Log.w("WidgetExample", String.valueOf(number));
        // Set the text
        remoteViews.setTextViewText(R.id.update, String.valueOf(number));

        // Register an onClickListener
        Intent intent = new Intent(context, ExJakdoJade.class);

        intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

        PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
                0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);
        appWidgetManager.updateAppWidget(widgetId, remoteViews);
    }
}

}

0 个答案:

没有答案