【问题标题】:how to get ExpandableListView child text如何获取 ExpandableListView 子文本
【发布时间】:2014-08-01 06:29:54
【问题描述】:

我正在使用带有 json 数组的可扩展列表视图。我得到了sample code

我的问题是如何将子标题作为字符串。单击子列表时我需要子数据。

    expListView.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                int groupPosition, int childPosition, long id) {


      GlobalData.childheader=ListChildXXXXXXXXX.get(
                     Listparent.get(groupPosition)).get(
                             childPosition);

}

它没有被执行。请帮忙

【问题讨论】:

  • 表示 Arraylist 类型中的 get(int) 方法不适用于参数 parent。请帮帮我
  • 将 Listparent 替换为 ListChildTerbaru。
  • stackoverflow.com/questions/18269261/…。检查并请帮助。我需要它

标签: android json expandablelistview


【解决方案1】:

ListChildXXXXXXXXX 到底是什么?那是JSON吗?还有什么是Listparent?请发布更多代码,以便我们了解 onChildClickListener 之前发生的情况。

你所做的对我来说似乎没问题,这是我的 onChildClickListener 示例:

private ArrayList<Page> headerPagesArray;
private HashMap<String, ArrayList<Page>> childPagesArray;

... SOME CODE TO MAKE THIS ALL WORK ...

lvListMenu.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
        @Override
        public boolean onChildClick(ExpandableListView parent, View v,
                                    int groupPosition, int childPosition, long id) {

            Page childPage = childPagesArray.get(headerPagesArray.get(groupPosition).getPageId()).get(childPosition);

            GoToPageEvent event = new GoToPageEvent("GoToPage", childPage);
            EventBus.getDefault().postSticky(event);
            return true;
        }
    });

在本例中,headerPagesArray 是对象的 ArrayList,childPagesArray 是 ArrayList 的 ArrayList> 其中 string 是父页面的页面 id。

编辑:

在解释了什么是什么之后,这应该可以工作:

expListView.setOnChildClickListener(new OnChildClickListener() {

    @Override
    public boolean onChildClick(ExpandableListView parent, View v,
            int groupPosition, int childPosition, long id) {


  GlobalData.childheader=ListChildXXXXXXXXX.get(
                 ListChildTerbaru.get(groupPosition)).get(
                         childPosition);

}

--- 更新 2 ---

啊,现在仔细阅读后,我明白了问题所在......

您正在尝试使用 ChildTerbaru 对象(或更早的 Parent 对象)调用 .get(),而应该使用简单的 int 调用它。

所以你的电话必须是这样的:

GlobalData.childheader=ListChildXXXXXXXXX.get(groupPosition).get(childPosition);

在此之后,如果 GlobalData.childheader 是 ChildTerbaru 类型,一切都应该正常

【讨论】:

  • 你好 Bojan Kopanja,ArrayList ListChildTerbaru; ArrayList 列表父; ArrayList> ListChildXXXXXXXXX;
  • 我引用了这个链接stackoverflow.com/questions/18269261/…。如果你找到答案请帮忙
  • 我得到了同样的错误先生.. ArrayList> 类型中的方法 get(int) 不适用于参数 (ChildTerbaru)
  • 对不起,我之前看错了问题,我现在写的应该可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 2019-09-26
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多