Элемент не нажат в GridView

1

У меня есть GridView, чьи элементы ToggleButtons, и я определил прослушиватель событий для кликов по элементам, но ничего не происходит, когда я нажимаю на них. Здесь слушатель:

    paintActionsGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> parent,View view,int position,
                long id)
        { 
            ((ToggleButton)view).setChecked(true);
            paintBoardView.setPaintAction(paintActions[position]); 
        }
    });

Я поставил точку останова в слушателе, но он не дошел, а это значит, что слушателя вообще не называют! Может кто-нибудь, пожалуйста, скажите мне, что случилось? Связано ли это с тем, что элементы ToggleButtons? При необходимости я могу прикрепить код адаптера. Благодарю.

Теги:
android-gridview
android-event

2 ответа

2
Лучший ответ

Событие клика потребляется ToggleButton, поэтому не передается в GridView. Подобно этому сообщению.

  • 0
    та же проблема, пробовал выше, но все еще не работает :( рву мне волосы!
1

Да, проблема заключается в том, что ToggleButton по умолчанию имеет включенную функцию clickable, и, следовательно, ваш ItemClickListener не будет работать. Идея состоит в том, чтобы установить фокус ToggleButton на значение false по умолчанию.

Предполагая, что у вас есть собственный xml для ToggleButton, добавьте в него эту строку,

android:focusable="false"

Поскольку у вас есть сфокусированный элемент, эта проблема возникает. Попробуйте эту простую идею.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню