2011-11-17 46 views
3

我無法找到任何地方,被點擊時,它的窗口小部件啓動一個對話框的情況下。你有什麼想法?如何從小部件啓動對話框?

我有這樣的代碼

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

你能Breifly descirbe該窗口小部件您使用的也是我認爲你可以嘗試在onClickListner此Widget –

+0

你能不能詳細闡述的。 是您的要求類似,點擊一個按鈕,然後你希望出現一個對話框。 ? – Sreeram

+0

要求是點擊app-widget並出現一個對話框。 – JustCurious

回答

9

我假設這裏的「小部件」你的意思是「應用程序部件」,互動元素的應用程序可以添加到用戶的主屏幕。

應用程序小部件無法顯示Dialog,因爲這隻能由Activity完成。您的應用程序插件可以啓動一個Activity,不過,通過startActivity()。而且,您可以通過將android:theme="@android:style/Theme.Dialog"添加到您的元素中,將主題活動看起來像一個對話框。

+0

是的,我的意思是應用程序的小部件。我也更新我的代碼的問題,我目前有 – JustCurious

+0

@JustCurious:似乎沒有太多的與衆不同與您的代碼中。確保你的'Execute'活動具有對話主題。 – CommonsWare

2

使與對話主題活動,並將其命名爲

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

當對話主題啓動時,原始應用程序也在後臺啓動。有沒有辦法啓動主應用程序?我的意思是我只想要啓動對話框 – JustCurious

0

您可以create an AlertDialog customized您的需求。然後你就可以alertDialog.show()onClickListener回調的其他部件的(比如按鈕)顯示對話框。

+0

是否有可能這樣做? @CommonsWare。我知道如何單獨創建一個對話框。問題是如何將它與我的應用程序小部件結合起來。 – JustCurious

相關問題