我的应用程序部件需要时,第一次添加到主屏幕进行配置。 我想打开用户添加小部件之后的结构图。
AppWidgetProvider
没有onCreated
事件,所以我展示上的confugration活动onUpdate
事件,并存储在一个布尔值SharedConfiguration
标志着该配置已经被证明。 有没有更简单的方法?
我的应用程序部件需要时,第一次添加到主屏幕进行配置。 我想打开用户添加小部件之后的结构图。
AppWidgetProvider
没有onCreated
事件,所以我展示上的confugration活动onUpdate
事件,并存储在一个布尔值SharedConfiguration
标志着该配置已经被证明。 有没有更简单的方法?
在的AppWidgetProvider XML文件中有一个叫做属性android:configure
您可以使用它来指向一个活动,当应用程序被丢弃到主屏幕上推出。 例如:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.bandsintown.WidgetSettingsActivity"
android:minWidth="250dp"
android:minHeight="110dp"
android:minResizeWidth="180dp"
android:minResizeHeight="110dp"
android:resizeMode="vertical|horizontal"
android:initialLayout="@layout/widget_layout"
android:updatePeriodMillis="10000" />
在你选择的配置活动,用户可以进行任何他们想要的选择。 你需要抓住和存储部件的ID。 在onCreate
方法,得到这样的ID:
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null)
mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
当他们已经取得了他们的选择,用它来发送一条信息给你的主屏幕小部件,它已经能够显示:
Intent intent = new Intent();
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, intent);
finish();
这会得到你以后。
尝试将它添加到onEnabled功能。 onEnabled将被调用时,应用程序窗口小部件添加到屏幕
onEnabled(上下文)这是当一个实例在App窗口小部件被首次创建调用。 例如,如果用户将您的应用程序窗口小部件的两个实例,这只是所谓的第一次。 如果您需要打开一个新的数据库或进行其他设置只需要为所有App控件实例出现一次,那么这是一个很好的地方去做。
为一个例子
@Override
public void onEnabled(Context context) {
Log.i("INDEX", "WIDGET Enabled");
AppWidgetManager mgr = AppWidgetManager.getInstance(context);
RemoteViews defaultViews = new RemoteViews(context.getPackageName(), R.layout.widget_restart);
Intent idefault = new Intent(context, MainActivity.class);
idefault.putExtra("widget", "1");
PendingIntent defaultpendingIntent = PendingIntent.getActivity(context, 0, idefault, 0);
defaultViews.setOnClickPendingIntent(R.id.headWidget, defaultpendingIntent);
ComponentName comp = new ComponentName(context.getPackageName(), Widget.class.getName());
mgr.updateAppWidget(comp, defaultViews);
}
这将是卡莱在第一时间设置控件的外观时,窗口小部件,第一次创建
如果您有任何问题随时问我的意见:)