2011-02-24 72 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

希望我帮助:)

相关问题