我无法找到一个小部件在单击时启动对话框的情况。你有什么想法?
我有这段代码
public void onUpdate(Context c, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
final int N = appWidgetIds.length;
AppWidgetManager mgr = AppWidgetManager.getInstance(c);
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(c.getPackageName(), R.layout.widget_layout);
Intent fireDialog = new Intent(c,Execute.class);
Toast test=Toast.makeText(c.getApplicationContext(),"onUpdate",Toast.LENGTH_LONG);
test.show();
PendingIntent pendingIntent = PendingIntent.getActivity(c, appWidgetId, fireDialog, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.Button, pendingIntent);
Log.w(LOG_TAG,"Called");
mgr.updateAppWidget(appWidgetId, views);
}
}
答案 0 :(得分:9)
我在这里假设“小部件”是指“应用小部件”,应用程序可以添加到用户主屏幕的交互式元素。
应用小部件无法显示Dialog
,因为这只能由Activity
完成。您的应用小部件可以通过Activity
启动startActivity()
。而且,您可以将android:theme="@android:style/Theme.Dialog"
添加到元素中,从而将您的活动设为主题。
答案 1 :(得分:2)
使用对话框主题制作活动,并将其命名为
<activity android:name=".DailyPillDialog" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog">
答案 2 :(得分:0)
您可create an AlertDialog customized满足您的需求。然后,您可以alertDialog.show()
从其他小部件的onClickListener
回调(例如按钮)来显示对话框。