将 Activity 与 Android 中 XML ListView 中的项目关联

发布于 2024-08-26 05:29:31 字数 211 浏览 5 评论 0原文

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

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

那么,当 ListView 中的项目没有 Id 时,如何将 Activity 与这些项目关联起来呢?

I have a ListView that is populated using an XML file. However, I want each item, when clicked, to start a new Activity related to that item.

I understand how to use OnItemClick to start a Toast that shows the selected item's text. However, since the ListView is populated from an XML there is not a specific Id for each item in the list.

So, how would I associate an Activity with each item in the ListView when the items do not have Ids?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赏烟花じ飞满天 2024-09-02 05:29:31

在 XML 文件中以数字或字符串格式维护必须调用的活动的节点。然后在集合中有一个活动列表,这些活动正在实现某个接口/抽象类,以便您可以对其进行循环。此外,活动还有一个静态字段/方法,可以返回其参考号或字符串,以便您也可以进行比较。

一些草图:

<?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

Maintain in your XML file a node for the Activity that has to be called, in a numeric or string format. Then have a list of activities in a collection, that are implementing a certain interface/abstract class, so that you can loop on it. Also activities have a static field/method that return their reference number or string so you can compare too.

Some sketch:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <category
        name="Item One"
        id="grp1" />
    <category
        name="Item Two"
        id="grp2" />
</resources>

In 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
                }
            }

where getTag() returns the identifier for the class eg: grp1 or grp2

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文