【问题标题】:Get child name instead of position id in Expandable List View在可扩展列表视图中获取子名称而不是位置 id
【发布时间】:2014-07-21 14:53:17
【问题描述】:

我正在关注thistutorial 来实现可扩展列表视图。现在我的问题是,我将如何更改以下方法以获取子名称而不是子位置 id?

// Call when child row clicked
        @Override
        public long getChildId(int groupPosition, int childPosition) {
            /****** When Child row clicked then this function call *******/

            // Log.i("Noise",
            // "parent == "+groupPosition+"=  child : =="+childPosition);
            if (ChildClickStatus != childPosition) {
                ChildClickStatus = childPosition;

                Toast.makeText(
                        getApplicationContext(),
                        "Parent :" + groupPosition + " Child :" + childPosition,
                        Toast.LENGTH_LONG).show();

            }

            return childPosition;
        }

我已经尝试了 2 个小时来完成这项工作。

【问题讨论】:

  • 对不起,我是初学者,我知道你定义子名的确切含义。我在 toast 部分插入 final Child child = new Child();然后是“孩子:”+ child.getName()。但结果为 NULL。 ???
  • Child child = new Child() 你希望这个做什么?
  • 从这个类调用定义的方法getName
  • 当然可以,但是这个新创建的实例不太可能在其成员中包含任何类型的数据。

标签: android expandablelistview


【解决方案1】:

把它当作子元素,把声明放在这里

getChildId(int groupPosition, int childPosition) { 
    final Child child = parent.getChildren().get(childPosition);
    //The rest of your method...
}

【讨论】:

  • 教程提供的代码中已经有 ;) 在 getChildView 方法中。
  • 是的,刚刚看到它:D...谢谢你的提示
  • 嗨,刚刚遇到了另一个问题。当活动开始并且我扩展一个父级时,首先它会依次显示吐司消息中的所有子级。我怎么能避免这种情况,只有当我点击一个孩子时才应该显示吐司?
  • 可能是因为父母有一个孩子,而孩子本身就是父母。所以第二个父母调用它的所有孩子。尝试在您认为 toast 来自的行设置断点并调试您的代码,然后您应该走上正确的轨道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多