Как запустить диалоговое окно из виджета? - PullRequest
3 голосов
/ 17 ноября 2011

Я нигде не смог найти случай, когда виджет запускает диалоговое окно при нажатии. Есть ли у вас какие-либо идеи?

У меня есть этот код

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

Ответы [ 3 ]

9 голосов
/ 17 ноября 2011

Здесь я предполагаю, что под «виджетом» вы подразумеваете «виджет приложения», интерактивные элементы, которые приложение может добавить на домашний экран пользователя.

Виджет приложения не может отображать Dialog, так какможет быть сделано только Activity.Ваш виджет приложения может запускать Activity, однако, через startActivity().И вы можете настроить свою деятельность так, чтобы она выглядела как диалог, добавив android:theme="@android:style/Theme.Dialog" к вашему элементу.

2 голосов
/ 17 ноября 2011

выполните действие с темой диалога и назовите его

<activity android:name=".DailyPillDialog" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog">
0 голосов
/ 17 ноября 2011

Вы можете создать AlertDialog, настроенный для ваших нужд. Затем вы можете alertDialog.show() из onClickListener обратного вызова другого виджета (скажем, кнопки), чтобы показать диалоговое окно.

...