我有一个绑定到SQLite数据库的ExpandableListView。为简化起见,我们假设数据库包含两列:title
和body
。在ExpandableListView中,每个group
都有title
,每个对应的child
都有body
。
现在为了让事情变得更有趣,SQLite数据库中的一些行没有body
(即......它们只有title
)。如您所见,如果没有正文,则没有理由扩展该组...因为该子将为空(即字符串body == ""
)。
我正在寻找一种方法来捕捉这样的情况,并跳过小组的扩张。我不希望一个空白的孩子被扩大。把它放在psuedo代码中,我想要这样的东西:
if (body.getText() == "") {
//DO NOT EXPAND
//DO OTHER STUFF
}
有什么建议吗?
答案 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);