我有一个带有集合的小部件(这很重要!)。看起来像这样:
我的代码基于官方的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/