2011-02-24 70 views

回答

-1

您可以在點擊一個小部件時啓動AlertDialog

更新:

添加以下代碼的onclick監聽器。

AlertDialog.Builder dialog = new AlertDialog.Builder(context); 
    dialog.setMessage("Message"); 
    dialog.show(); 
+0

我正在嘗試,但失敗,你有代碼,或一個例子的鏈接?謝謝。我一直在爲AppWidgetProvider的'onUpdate'方法設置未決意圖,我已經有了基本的'AlertDialog'準備好了,如果我的點擊有某種效果的話。 – Timbermar 2011-03-27 03:09:10

+0

請檢查更新的答案。您可以根據您的要求進行修改。 – 2011-03-28 09:12:54

+0

'android.view.WindowManager $ BadTokenException:無法添加窗口 - 標記null不適用於應用程序。所以沒有。投票下來。 – machei 2015-07-12 21:12:00

10

我相信你已經解決了這個問題,但無論如何我會寫在這裏,以防像我這樣的其他人登陸這個答案。

要通過單擊Widget來啓動對話框,您可以定義一個類似對話框樣式的活動,並在單擊該小部件時啓動它。

首先加入活動清單,讓我們把它DialogWidgetActivity

<activity 
    android:name=".DialogWidgetActivity" 
    android:theme="@android:style/Theme.Dialog" 
    ... 
/> 

然後在你的WidgetProvider,姑且稱之爲MyWidgetProvider widget的點擊綁定推出的活動

public class MyWidgetProvider extends AppWidgetProvider { 

public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 

    final int N = appWidgetIds.length; 

    // Perform this loop procedure for each App Widget that belongs to this 
    // provider 
    for (int i = 0; i < N; i++) { 
     int appWidgetId = appWidgetIds[i]; 

     // Create an Intent to launch the activity-dialog 
     Intent intent = new Intent(context, DialogWidgetActivity.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

     // Get the layout for the App Widget and attach an on-click listener 
     // to it 
     RemoteViews views = new RemoteViews(context.getPackageName(), 
       R.layout.widget); 
     views.setOnClickPendingIntent(R.id.widget_container, pendingIntent); 

     // Tell the AppWidgetManager to perform an update on the current app 
     // widget 
     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 

} 
} 

請注意,此處我們已將活動的啓動綁定到對話框的widget_container元素上的單擊。您可以通過將widget_container id android:id="@+id/widget_container"分配給小部件佈局的根元素來輕鬆實現此目的。

然後,您可以編寫您的活動對話框及其佈局,就像正常的全屏活動一樣。

我的消息來源是this answerthe Android documentation

希望我幫助:)

相關問題