Мне связали ExpandableListView с базой данных SQLite. Для упрощения вещей, позволяет, предполагают, что база данных содержит два столбца: title
и body
. В ExpandableListView существует a group
для каждого title
, и a child
для каждого соответствия body
.
Теперь для создания вещей более интересными некоторые строки в базе данных SQLite не имеют a body
(который является..., у них только есть a title
). Как Вы видите, если нет никакого тела, то нет никакой причины развернуть группу..., потому что ребенок будет пуст (т.е. Строка body == ""
).
Я ищу способ поймать такую ситуацию и пропустить расширение группы. Я не хочу, чтобы был расширен пустой ребенок. Для помещения его в код psuedo я хочу что-то вроде этого:
if (body.getText() == "") {
//DO NOT EXPAND
//DO OTHER STUFF
}
Какие-либо предложения?
Уловка заключается в OnGroupClickListener. Следующий код должен работать. Поместите в конец метода onCreate для ExpandableListActivity.
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.
}
});