我已经构建了一个Android小部件,允许多个大小2x2和4x2。因此当有人在小部件选择器屏幕上时,他们会看到两种尺寸。他们点击其中一个尺寸,然后转到我的配置活动。我如何知道他们在小部件选择器屏幕上选择的大小。我需要知道在配置活动中选择了哪一个。我遇到了如何前进以及要研究的方向。以下是我的清单文件,以防您认为它可能会澄清我在做什么:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.corradodev.customizable_countdown_widget"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="3" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<!-- Configure Activity -->
<activity android:name=".configure">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
<!-- Broadcast Receivers that will process AppWidget updates -->
<receiver android:name=".customizable_countdown_widget_large" android:label="@string/app_name_large">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_provider_large" />
</receiver>
<receiver android:name=".customizable_countdown_widget_small" android:label="@string/app_name_small">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_provider_small" />
</receiver>
<!-- Service for updating -->
<service android:name=".widget_service" />
</application>
</manifest>
感谢您的帮助。
解决方案: 在配置活动的oncreate中
Bundle mExtras = mIntent.getExtras();
if (mExtras != null) {
mAppWidgetId = mExtras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
}
//Log.d(TAG, Integer.toString(mAppWidgetId));
// If they gave us an intent without the widget id, close
if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
finish();
}
AppWidgetProviderInfo providerInfo = AppWidgetManager.getInstance(getBaseContext()).getAppWidgetInfo(mAppWidgetId);
String minWidth=String.valueOf(providerInfo.minWidth);
答案 0 :(得分:0)
一旦拥有了wdiget ID,你可以使用AppWidgetProviderInfo AppWidgetManager.getAppWidgetInfo(int appWidgetId)
并检查`minSize'等。您可以从配置活动中获取它,如下所示:
int id = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);