ExpandableListView - 条件扩展是否可行?

时间:2010-08-12 03:42:36

标签: android expandablelistview

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

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

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

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

有什么建议吗?

2 个答案:

答案 0 :(得分:15)

诀窍在于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.
  }
});

答案 1 :(得分:0)

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

expListView.setEnabled(false);

无论何时你想要禁用它,然后当你正在等待的任务完成时你就可以打电话

expListView.setEnabled(true);