我有一个使用XML文件填充的ListView。但是,我希望每个项目在单击时启动与该项目相关的新活动。
我理解如何使用OnItemClick启动显示所选项目文本的Toast。但是,由于ListView是从XML填充的,因此列表中的每个项目都没有特定的ID。
那么,当项目没有ID时,如何将Activity与ListView中的每个项目相关联?
答案 0 :(得分:0)
在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
}
}
其中getTag()
返回类的标识符,例如:grp1
或grp2