将Activity与Android中的XML ListViews中的项相关联

时间:2010-03-22 03:21:12

标签: android listview android-widget listviewitem

我有一个使用XML文件填充的ListView。但是,我希望每个项目在单击时启动与该项目相关的新活动。

我理解如何使用OnItemClick启动显示所选项目文本的Toast。但是,由于ListView是从XML填充的,因此列表中的每个项目都没有特定的ID。

那么,当项目没有ID时,如何将Activity与ListView中的每个项目相关联?

1 个答案:

答案 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()返回类的标识符,例如:grp1grp2