我有一个使用 XML 文件填充的 ListView。但是,我希望每个项目在单击时启动一个与该项目相关的新活动。
我了解如何使用 OnItemClick 启动显示所选项目文本的 Toast。但是,由于 ListView 是从 XML 填充的,因此列表中的每个项目都没有特定的 Id。
那么,当项目没有 Id 时,我如何将 Activity 与 ListView 中的每个项目相关联?
我有一个使用 XML 文件填充的 ListView。但是,我希望每个项目在单击时启动一个与该项目相关的新活动。
我了解如何使用 OnItemClick 启动显示所选项目文本的 Toast。但是,由于 ListView 是从 XML 填充的,因此列表中的每个项目都没有特定的 Id。
那么,当项目没有 Id 时,我如何将 Activity 与 ListView 中的每个项目相关联?
在您的 XML 文件中维护必须以数字或字符串格式调用的 Activity 的节点。然后有一个集合中的活动列表,这些活动正在实现某个接口/抽象类,以便您可以循环它。活动也有一个静态字段/方法,它返回它们的参考号或字符串,所以你也可以比较。
一些草图:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<category
name="Item One"
id="grp1" />
<category
name="Item Two"
id="grp2" />
</resources>
在 Java 中:
List<AbstractTable> col = new ArrayList<AbstractTable>();
col.add(new clsGroup1(this.ctx));
col.add(new clsGroup2(this.ctx));
for (AbstractTablecls : col) {
if (cls.getTag().equals(varFromListSelection)) {
//launch intent of this class
}
}
wheregetTag()
返回类的标识符,例如:grp1
或grp2