【问题标题】:Get unique identifier for view in ExpandableList Android获取可扩展列表 Android 中视图的唯一标识符
【发布时间】:2014-10-17 11:23:06
【问题描述】:

我想创建一个 ArrayList 或 Map 来保存 childView 的选中状态。但是,为了做到这一点,我需要为每个视图设置一个唯一标识符。

我尝试了 view.getId() 但列表中的每一行都返回了 -1。 我尝试了 childPosition,但在每个组中都会重复。

例子:

  • A1 = 0
  • A2 = 1
  • B1 = 0

我看到的唯一内容是 groupPosition 和 childPosition 的组合,除非其他人知道其他内容。那么有没有办法创建一个包含两个独立整数的可访问索引的 Map 或 ArrayList?

或者是一种结合 childPosition 和 groupPosition 以获得一个唯一标识符,我可以为每个 childView 使用的方法?

【问题讨论】:

    标签: java android map expandablelistview


    【解决方案1】:

    也许你可以像这样使用静态方法View.generateViewId();
    yourView.setId( View.generateViewId() );

    同时将此 id 放入您的ArrayList

    【讨论】:

    • 今晚我会试试这个。谢谢。
    【解决方案2】:

    结合两个整数的方法?

    String identifier = groupPosition + "-" + childPosition;
    //which is the id of
    HashMap<String, boolean> checkedElements = new HashMap<String, boolean>();
    

    恐怕没有什么魔法。

    【讨论】:

    • 我唯一的问题是我需要将视图的检查状态(布尔值)添加到 ArrayList 或 Map 并有一种方法可以使用唯一索引再次访问它,我可以使用给定的索引重新创建信息。如果标识符是字符串,我不能将其用作 Map 或 ArrayList 中的索引。
    • 我是新手,没有意识到可以使用 HashMap 来完成。看看这是否适合我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多