Android 小部件按钮 Onclick Toast 消息

Posted

技术标签:

【中文标题】Android 小部件按钮 Onclick Toast 消息【英文标题】:Android Widget Button Click Toast Maessage 【发布时间】:2013-12-08 23:58:51 【问题描述】:

我创建了一个简单的小部件,只有一个按钮和 textView。当我第一次将我的小部件添加到主屏幕时,会出现一条 FC 消息并添加小部件。并且按钮单击吐司消息将不起作用。单击小部件按钮时,只有我需要一条吐司消息。我已经阅读了很多教程,但无法弄清楚问题所在。任何想帮助的天才..真的很感激帮助..谢谢..

widgetProvider.java

public class widgetProvider extends AppWidgetProvider

    @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) 
    final int N = appWidgetIds.length;

    for (int i=0; i<N; i++) 
        int appWidgetId = appWidgetIds[i];

        Intent intent = new Intent(context, widgetProvider.class);
        intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
        views.setOnClickPendingIntent(R.id.button1, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);
    

    @Override
    public void onReceive(Context context, Intent intent) 

        if (intent.getAction().equals(AppWidgetManager.ACTION_APPWIDGET_UPDATE)) 
            Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show();
            
    

androidManifest.xml

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <receiver android:name=".widgetProvider" android:label="@string/app_name">
        <intent-filter >
            <action 
                android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widgetprovider" />
    </receiver>

</application>

【问题讨论】:

首先,你得到的异常是什么? 消息是“很遗憾,A_Widget 已停止。”但小部件将添加到主屏幕。 【参考方案1】:

您的 onUpdate 永远不会被调用,因为您覆盖了 onReceive 方法。

【讨论】:

感谢您的帮助..但请原谅我..我该怎么做..如何在 onReceive 之前调用 onUpdate。 如果不是您采取行动,那么您应该致电 super.onReceive 。另外,我认为您有一个例外,因为意图的操作可以为空。 @rzshss 你能提供更新的代码吗?我真的需要它。提前致谢

以上是关于Android 小部件按钮 Onclick Toast 消息的主要内容,如果未能解决你的问题,请参考以下文章

Android Widget 更新服务,多个 onclick 监听器

小部件onClick中的Android ListView不起作用

如何在 onclick href 中调用简码(在 Html 小部件中)?

dojo.dijit.Button 触发 onclick 事件两次

带有下拉列表的android按钮小部件,这个特定小部件的名称是啥?

android小部件的按钮单击事件