如何处理Android SimpleExpandableListAdapter条目选择

发布于 2024-08-26 20:36:12 字数 208 浏览 8 评论 0原文

我使用 SimpleExpandableListAdapter 类型在 Android 应用程序中创建了一个可扩展列表。 但我完全不知道如何在选择/单击子条目之一时检测事件。

我已经尝试了所有常见的 OnClickListener/OnChildClickListener 等,但似乎无法找到(通过实验或半小时谷歌搜索)正确的处理程序例程应该是什么。

非常感谢任何帮助。

I have created an expandable list in my Android application using the SimpleExpandableListAdapter type.
But I'm at a complete loss as to how I detect events when one of the child entries has been selected/clicked.

I've tried all the usual OnClickListener/OnChildClickListener etc, but can't seem to find (by experimentation, or half an hour googling) what the correct handler routines should be.

Any help greatfully appreciated.

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

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

发布评论

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

评论(2

过度放纵 2024-09-02 20:36:12

它应该是:

list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
    public void onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Object o = (Object)adapter.getChild(groupPosition, childPosition);
        // perform work on child object here
    }
}  

虽然,听起来你尝试过这个... ExpandableListView .OnChildClickListener 说这实际上就是这样做的方法。

另外,您是否为 ListAdapter 定义了方法 allItemsAreEnabled() 和/或 isEnabled() ?您不应该这样做,但也许它们当前已定义并返回错误的值?

It should be:

list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
    public void onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Object o = (Object)adapter.getChild(groupPosition, childPosition);
        // perform work on child object here
    }
}  

Though, it sounds like you tried this... ExpandableListView.OnChildClickListener says that it is, in fact, the way to do it.

Also, have you defined the methods allItemsAreEnabled() and/or isEnabled() for your ListAdapter? You shouldn't have to, but maybe they are currently defined and returning the wrong values?

ペ泪落弦音 2024-09-02 20:36:12

另外...

如果您碰巧使用扩展 BaseExpandableListAdapter 的类,那么它们是默认实现的方法,您必须为其设置返回布尔值。

    @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return true;
}

默认情况下,此方法返回 false,交换为 true(如果是这种情况),并且您的 OnChildClickListener 应该开始正确解析。

Also...

If you happen to be using a class that extends BaseExpandableListAdapter then their is a default implemented method you'll have to set the return boolean for.

    @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return true;
}

By default this method is returning false, swap to true(if this is the case) and your OnChildClickListener should start resolving correctly.

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