android - 小部件在单击时启动对话框

标签 android

是否可以在点击小部件时启动一个对话框,或者我是否必须在点击小部件时启动一个 Activity 然后是一个对话框?

最佳答案

我相信你已经解决了这个问题,但我还是会写在这里,以防其他像我一样的人找到这个答案。

要通过单击小部件启动对话框,您可以定义一个样式类似于对话框的 Activity ,并在单击小部件时启动它。

首先在 list 中添加 Activity ,我们称之为DialogWidgetActivity

<activity
    android:name=".DialogWidgetActivity"
    android:theme="@android:style/Theme.Dialog"
    ...
/>

然后在您的 WidgetProvider 中,我们称它为 MyWidgetProvider 将小部件的点击与 Activity 的启动绑定(bind)

public class MyWidgetProvider extends AppWidgetProvider {

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

    final int N = appWidgetIds.length;

    // Perform this loop procedure for each App Widget that belongs to this
    // provider
    for (int i = 0; i < N; i++) {
        int appWidgetId = appWidgetIds[i];

        // Create an Intent to launch the activity-dialog
        Intent intent = new Intent(context, DialogWidgetActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

        // Get the layout for the App Widget and attach an on-click listener
        // to it
        RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.widget);
        views.setOnClickPendingIntent(R.id.widget_container, pendingIntent);

        // Tell the AppWidgetManager to perform an update on the current app
        // widget
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }

}
}

请注意,这里我们已将 Activity 的启动绑定(bind)到单击对话框的 widget_container 元素。您可以通过将 id widget_container android:id="@+id/widget_container" 分配给小部件布局的根元素来轻松实现这一点。

然后您可以编写您的 Activity 对话框及其布局,就像您为正常的全屏 Activity 所做的那样。

我的消息来源是 this answerthe Android documentation .

希望我有所帮助:)

关于android - 小部件在单击时启动对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5101062/

相关文章:

android - 如何在 Jetpack Compose 中创建表格?

java - Gradle 传递存储库和凭据

android - 在 LongPress 之后移动事件

android - 在另一个 Activity 中更新后刷新 ListView

Android Test Orchestrator 无法与 Android X 配合使用

java - 我设置 ListView 的方式有什么问题?

java - 在android中从wsdl生成java代码

android - 带有嵌套 fragment 的 ViewPager?

android - 获取 facebook 电子邮件 parse.com

java - 在更大的文本中检索某些文本