1

我想从我的小部件(AppWidgetProvider)制作一个带有文本视图的弹出窗口,我想要底部的“更新”和“关闭”中的 2 个按钮。我尝试使用 AlertDialog 但它使小部件崩溃。

AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setMessage("Sample text")
                   .setCancelable(false)
                   .setPositiveButton("Update", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           CallUpdate(context);
                       }
                   })
                   .setNegativeButton("Close", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                       }
                   });
            builder.show();

我希望能够使用跨区文本。

谢谢。

4

2 回答 2

2

您不能显示AlertDialog来自AppWidgetProvider. 您将需要创建一个Activity并使用它,通过startActivity(). 如果您愿意,您可以将活动主题化为看起来像一个对话框

于 2012-04-27T13:14:23.610 回答
2

App Widget 可以支持以下布局类:

FrameLayout
LinearLayout
RelativeLayout

以及以下小部件类:

AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper

所以你不能显示AlertDialogAppWidgetProvider。您可以在按钮单击时启动一个活动,它看起来像一个警报对话框。

要在主屏幕小部件上启动活动,请单击您可以看到以下帖子:

从小部件启动活动

如何从 android 主屏幕小部件启动活动

于 2012-04-27T13:29:44.570 回答