Как обрабатывать выбор записи Android SimpleExpandableListAdapter - PullRequest
0 голосов
/ 25 марта 2010

Я создал расширяемый список в своем приложении для Android, используя тип SimpleExpandableListAdapter. Но я в полной растерянности относительно того, как я обнаруживаю события, когда одна из дочерних записей была выбрана / нажата.

Я перепробовал все обычные OnClickListener / OnChildClickListener и т. Д., Но, похоже, не могу найти (экспериментально или полчаса поиск), какими должны быть правильные процедуры обработчика.

Любая помощь с благодарностью.

Ответы [ 2 ]

2 голосов
/ 25 марта 2010

Должно быть:

list.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
    public void onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        Object o = (Object)adapter.getChild(groupPosition, childPosition);
        // perform work on child object here
    }
}  

Хотя, похоже, вы пробовали это ... ExpandableListView.OnChildClickListener говорит, что это, по сути, способ сделать это.

Кроме того, вы определили методы allItemsAreEnabled () и / или isEnabled () для вашего ListAdapter? Вам не нужно этого делать, но, может быть, они определены и возвращают неправильные значения?

1 голос
/ 09 июня 2010

Кроме того ...

Если вы используете класс, который расширяет BaseExpandableListAdapter, то это реализованный по умолчанию метод, для которого вы должны будете установить возвращаемое логическое значение.

    @Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return true;
}

По умолчанию этот метод возвращает значение false, поменяйте его на true (если это так), и ваш OnChildClickListener должен начать разрешать правильно.

...