首页 > 解决方案 > 多个主屏幕小部件 - Android

问题描述

有没有人尝试在 Android 应用中添加多个主屏幕小部件?我有一个小问题。我的所有小部件都已设置,刷新工作正常等,但我无法从它们启动应用程序 - 有时它们都将我带到应用程序有时没有。

我知道我在哪里犯了错误,但是我不知道如何解决它。

我的助手类存储在 updateWidget 函数上,它应该使小部件也可点击。

 static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                int appWidgetId, int viewId, String sharedPreferencesPropertyName
    ) {
        try {
            Intent intent = new Intent(context, MainActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
            RemoteViews views = new RemoteViews(context.getPackageName(), viewId);
            Helper.getPreferenceAndSetSubtitle(context, views, sharedPreferencesPropertyName);
            views.setOnClickPendingIntent(R.id.fullLinearLayout, pendingIntent);
            appWidgetManager.updateAppWidget(appWidgetId, views);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我认为这条线导致了这个问题

RemoteViews views = new RemoteViews(context.getPackageName(), viewId);

viewID 应该替换为 R.layout.widget_name 但我有 6 个,所以我必须调用它 6 次吗?

此外,我在每个小部件类中调用它,如下例所示,没有任何事情发生。

 @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        for (int appWidgetId : appWidgetIds) {
            Helper.updateAppWidget(context, appWidgetManager, appWidgetId, R.layout.red_cells_2_widget, "flutter.redCells2");
        }
    }

标签: javaandroid

解决方案


推荐阅读