2

我正在实现一个与小部件相关的应用程序,我准备了一个小部件,它运行良好,当单击打开活动的视图以准备该小部件的设置时。

但我的要求是当点击主屏幕小部件时,我想直接打开活动,然后打开小部件。

从上图中单击自定义模拟时钟小部件时,在我的应用程序中打开第一个活动,然后我想显示小部件,因为从我的活动中我将为该小部件设置一些设置。我怎样才能先打开活动?

4

2 回答 2

6

小部件在添加到主屏幕时可以调用一个特殊的活动。如果您想阻止创建小部件本身,该活动可以返回带有小部件 ID 的 SUCCESS 意图,并在活动的“onCreate”方法或 RESULT_CANCELED 中接收。

您只需android:configure在 XML 的属性中添加配置活动类,并在 AndroidManifest 中的活动声明中appwidget-provider添加意图过滤器。android.appwidget.action.APPWIDGET_CONFIGURE它在http://developer.android.com/guide/topics/appwidgets/index.html#Configuring中有详细说明

收到的意图具有小部件 ID:

public void onCreate(Bundle savedInstanceState) {
    ...
    int widgetID = getIntent().getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    ...
}

然后您可以通过以下方式完成活动setResult(RESULT_CANCELED);或确认小部件的创建:

    Intent resultValue = new Intent();
    resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
    setResult(RESULT_OK, resultValue);

您可以从该活动中进行所有小部件设置。

另一方面,如果您想为所有小部件实例执行只需要发生一次的其他设置,您可以在onEnabled您的 AppWidgetProvider 类的方法中进行,如http://developer.android.com/guide/中所述主题/appwidgets/index.html#AppWidgetProvider

于 2013-04-15T07:07:16.203 回答
1

您应该查看本教程:http ://android-er.blogspot.nl/2010/10/simple-home-screen-app-widget-with.html它完全符合您的要求。

于 2013-04-18T11:29:34.867 回答