我有一个简单的问题(希望它很简单)。
我试过在小部件中使用adapterviewflipper。我在这里测试了这段代码。
如果主屏幕中只有一个小部件实例,该代码对我来说非常有效。但是当我创建另一个小部件实例时,事情变得一团糟。每个小部件实例中的下一个按钮只会影响最后创建的小部件,这是错误的。
任何人都知道如何处理这个问题?
提前致谢!
我有一个简单的问题(希望它很简单)。
我试过在小部件中使用adapterviewflipper。我在这里测试了这段代码。
如果主屏幕中只有一个小部件实例,该代码对我来说非常有效。但是当我创建另一个小部件实例时,事情变得一团糟。每个小部件实例中的下一个按钮只会影响最后创建的小部件,这是错误的。
任何人都知道如何处理这个问题?
提前致谢!
原因是您为每个小部件实例设置的 PendingIntent 被系统视为相同。您可以为每个小部件实例设置不同的 requestCode。例如,您可以像这样定义 PendingIntent:
final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, **appWidgetId**, intent, PendingIntent.FLAG_UPDATE_CURRENT);
参考: Multiple Instances Of Widget Only Updating Last widget
请注意,在上面的页面中,PendingIntent 上的 setData 可能无法解决问题。但是设置不同的 requestCode 总是可以的。
文件 WidgetProvider.java,onUpdate(),PendingIntent 使用请求代码 0。将其替换为小部件 id。
final PendingIntent nextPendingIntent = PendingIntent
.getBroadcast(context, id, nextIntent,
PendingIntent.FLAG_UPDATE_CURRENT);