簡體   English   中英

如何從窗口小部件啟動對話框?

[英]How to launch a dialog box from a widget?

我無法在任何地方找到一個小部件在單擊時啟動對話框的情況。 你有什么想法?

我有這個代碼

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);
     }
}

我在這里假設“小部件”是指“app widget”,應用程序可以添加到用戶主屏幕的交互式元素。

應用小部件無法顯示Dialog ,因為只能通過Activity完成。 但是,您的應用小部件可以通過startActivity()啟動一個Activity 並且,您可以通過向您的元素添加android:theme="@android:style/Theme.Dialog"來將您的活動主題看作對話框。

使用對話框主題進行活動,並調用它

<activity android:name=".DailyPillDialog" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog">

您可以根據需要創建自定義AlertDialog 然后,你可以alertDialog.show()onClickListener的其他部件(比如按鈕)的回調,顯示該對話框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM