窗口小部件列表中不显示窗口小部件

时间:2013-12-03 08:27:44

标签: java android widget

我尝试为应用程序制作一些简单的小部件。但它不起作用。 在新的明确申请(没有活动)一切都很好。在我的应用程序中,列表中没有小部件。 我认为问题显而易见,但我无法解决它。以下是来源:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.watcom.MobileInformer"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10"/>
    <application  android:label="@string/app_name" android:theme="@style/WatcomTheme">

        <receiver
                android:icon="@drawable/icon"
                android:label="Example Widget"
                android:name="MyWidgetProvider" >
            <intent-filter >
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

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

        <activity android:name=".AuthorizationActivity"
                  android:label="@string/app_name" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            </intent-filter>
        </activity>

        <activity android:name=".ProjectsActivity" android:screenOrientation="portrait"/>
        <activity android:name=".ZonesActivity" android:screenOrientation="portrait"/>



    </application>

    <uses-permission xmlns:android="http://schemas.android.com/apk/res/android"
                     android:name="android.permission.INTERNET" />
</manifest> 

MyWidgetProvider.java:

public class MyWidgetProvider 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,
                MyWidgetProvider.class);
        int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
        for (int widgetId : allWidgetIds) {
            // Create some random data
            int number = (new Random().nextInt(100));

            RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
                    R.layout.widget_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, MyWidgetProvider.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);
        }
    }
}

widget_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:layout_margin="8dip"
              android:background="@drawable/myshape" >

    <TextView
            android:id="@+id/update"
            style="@android:style/TextAppearance.Medium"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="center_horizontal|center_vertical"
            android:layout_margin="4dip"
            android:text="Static Text" >
    </TextView>

</LinearLayout>

widget_provider.xml:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="schemas.android.com/apk/res/android"
                    android:minWidth="146dip"
                    android:minHeight="72dip"
                    android:updatePeriodMillis="86400000"
                    android:initialLayout="@layout/widget_layout" />

P.S。:Android设备的版本是2.3.5

0 个答案:

没有答案