在Android中向按钮添加自定义数据/属性

14

我现在正在从API中提取一些数据,对于响应中的每个项目,我填充布局并将另一个项目添加到布局中。

我想要的是有一个“添加到收藏夹”按钮,它会将当前项目添加到SQLite数据库中。我已经创建了DAO和DB处理,但有一件事让我困扰。

当我点击按钮时,我无法确定哪个项目ID的按钮被点击了。我通常是Web开发人员,在Web上,按钮可以有data-xxx="yyy"属性,其中xxxyyy是开发人员想要的任何内容。

在Android中是否可能实现这种方式?我有另一个解决方案,但这更像是"hack":创建一个隐藏的TextView来保存我的项目ID,并获取onClick事件来检查那个TextView(与按钮为兄弟节点的TextView)。还有其他的想法吗?

1个回答

30
当我点击按钮时,我无法确定哪个项目ID的按钮已被单击。您可以使用“setTag()”方法向任何“View”添加任意数据。当您为新项充气布局时,获取该项的ID,并将其设置为对应于该项的新充气布局中的“Button”的标签。然后,在“Button”的“OnClickListener”中,您将能够使用“getTag()”方法检索标签(在您的情况下为ID),并愉快地将其插入数据库中。

2
setTag!这正是我需要的。谢谢! - Eduard Luca
但是,如果我需要超过一个标签呢!? - Francisco Corrales Morales
1
@FranciscoCorralesMorales setTag() 方法接受一个可以是任何东西的对象。这包括一个自定义的包装类,它可以在其成员字段中保存您想要作为标记的所有数据。 - user
2
@FranciscoCorralesMorales的setTag()和getTag()方法可以选择性地接受一个整数键。因此,您可以轻松地为每个按钮存储多个对象。 - Mackie Messer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接