【问题标题】:ExpandableListView - Is conditional expansion possible?ExpandableListView - 是否可以进行条件扩展?
【发布时间】:2010-08-12 03:42:36
【问题描述】:

我有一个 ExpandableListView 绑定到 SQLite 数据库。为简化起见,假设数据库包含两列:titlebody。在 ExpandableListView 中,每个title 对应一个group,每个对应的body 对应一个child

现在让事情变得更有趣,SQLite 数据库中的某些行没有body(也就是说……它们只有title)。如您所见,如果没有正文,则没有理由扩展组...因为孩子将是空的(即字符串body == "")。

我正在寻找一种方法来捕捉这种情况,并跳过小组的扩张。我不希望一个空白的孩子被扩大。把它放在伪代码中,我想要这样的东西:

if (body.getText() == "") {
  //DO NOT EXPAND
  //DO OTHER STUFF
}

有什么建议吗?

【问题讨论】:

    标签: android expandablelistview


    【解决方案1】:

    诀窍在于 OnGroupClickListener。以下代码应该可以工作。放在 ExpandableListActivity 的 onCreate 方法的末尾。

    lv.setOnGroupClickListener(new OnGroupClickListener() {
    
      @Override
      public boolean onGroupClick(ExpandableListView parent, View v,
          int groupPosition, long id) {
    
        Cursor c = mDbHelper.fetchRow(id); //Get Title & body from SQLite table
        if (c.getString(Constants.bodyColumn).equals("")) {
          //If the body returned from SQLite is empty, return true
          return true; //True means the click HAS been handled.
        }
        return false; //Click has not been handled, so let Android expand here.
      }
    });
    

    【讨论】:

      【解决方案2】:

      这可以通过非常简单和容易的方式完成

      expListView.setEnabled(false);
      

      只要你想禁用它,然后当你等待的任务完成时,你就可以调用

      expListView.setEnabled(true);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-30
        • 1970-01-01
        • 2010-12-21
        • 1970-01-01
        • 2011-12-13
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        相关资源
        最近更新 更多