我有一个带有集合的小部件(这很重要!)。看起来像这样:



我的代码基于官方的Android文档:Android App Widgets

因此,对于小部件,我将集合与StackView集合内的自定义对象一起使用。该集合由StackRemoteViewsFactory处理(实现RemoteViewsService.RemoteViewsFactory)。
如您所见,每个项目都有三个ImageButton和一个TextView。

我知道如何为整个RemoteView项目添加onClick行为。
这在官方文档中有描述。

但是我每个视图(按钮和文本视图)都需要四个onClick行为。

我的问题:
对于带有RemoteView集合的小部件中的每个StackView项目,是否可能具有不同的onClicks视图?

现在我看不到如何做到这一点:(



更新:

我希望在onClicks中有类似以下内容的内容:Processing more than one button click at Android Widget。但是由于小部件实现方面的差异,该问题的解决方案不适用于具有RemoteViews集合的小部件。

最佳答案

如果您已经看到StackView小部件示例代码,则知道存在提供程序类和服务类。在服务类中,尝试使用包含“命令字”在内的Intent将setOnClickFillInIntent添加到stackview布局的每个id中。在提供程序类中,将setPendingIntentTemplate设置为示例代码。这是重要的部分,在提供程序类中,有OnReceive()。 setPendingIntentTemplate将发送Intent,其中包括您在Provider类中设置的特定操作和为服务类中每个layout ID设置的“ comman word”两件事。那么现在您知道用户从Stack View小部件中单击了哪个按钮。
如果您需要其他提示,请告诉我,我将添加示例代码。

关于android - 在StackView小部件项内设置onClick事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11613022/

10-12 00:30
查看更多