8

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

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

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

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

有什么建议么?

4

2 回答 2

16

诀窍在于 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.
  }
});
于 2010-08-12T13:08:54.207 回答
0

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

expListView.setEnabled(false);

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

expListView.setEnabled(true);
于 2016-04-08T15:10:47.343 回答