Добавление слушателя к дочерним узлам в Расширяемом Элементе Списка - PullRequest
2 голосов
/ 21 декабря 2011

Я использовал код, указанный в учебнике http://mylifewithandroid.blogspot.com/2010/12/expandable-list-and-checkboxes.html Я приложил изображение ExpandableListView enter image description here

SimpleExpandableListAdapter expListAdapter =
        new SimpleExpandableListAdapter(
            this,
            createGroupList(),  
            R.layout.child_row, 
            new String[] { "CityName" },
            new int[] { R.id.childname },       
            createChildList(),  
            R.layout.child_row, 
            new String[] { "citydetails", "city" }, 
            new int[] { R.id.childname, R.id.city}  
        );

    setListAdapter( expListAdapter );

Мне нужен пример кода о том, как добавить слушателей для отдельного ребенкаУзлы, например, нажав на Адрес, должны привести пользователя к другому виду деятельности.Ждем Вашего ответа.спасибо.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Вы также можете переопределить свою активность для метода onChildClick:

@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int groupPosition, int childPosition, long id) {
    //implement logic to start the appropriate activity for this child.
}

С сайта разработчика Android: onChildClick .

Я также рекомендую загрузить демонстрационные версии API . Вы можете узнать больше о настройке здесь .

1 голос
/ 21 декабря 2011

AFAIK, вы не можете добавить слушателя в ваши дочерние представления, используя приведенный выше пример.Вам нужно будет иметь специальный адаптер.В этом пользовательском адаптере getChildView и getGroupView вы можете предоставить своих собственных слушателей.Например,

public View getGroupView(
            int groupPosition, 
            boolean isExpanded,
            View convertView, 
            ViewGroup parent) {

        ViewGroup viewGroup = null;
        if (convertView == null) {
            LayoutInflater li = (LayoutInflater) getApplication().getSystemService(LAYOUT_INFLATER_SERVICE);
            if (li != null) {
                viewGroup = (ViewGroup) li.inflate(R.layout.listitems_group, parent, false);
            }
        } else {
            viewGroup = (ViewGroup) convertView;
        }

            Button button = (Button) viewGroup.findViewById(R.id.group_button);
            button.setOnClickListener(new OnClickListener() {
                 void onClick(View v) {
                     // Do what you want here
                 }
            });
            return viewGroup;
}

Здесь у меня есть кнопки в моем GroupView, для которых я хочу добавить слушателя onClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...