Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Получать данные по сокетам http://www.cyberforum.ru/android-dev/thread557256.html
Здравствуйте, пишу Socket клиент для Android на Java который коннектится к серверу и сервер начинает отправлять данные в таком формате первые 4 байта- размер файла затем сам файл потом опять 4...
Программирование Android Загадочная разметка, не могу разобраться. Пытаюсь сделать список с элементами такого вида: Cправа - кнопка, слева: слово и под ним Progressbar. Не могу понять, как сделать так, чтобы кнопка прижалась вправо, а прогресс-бар с надписью... http://www.cyberforum.ru/android-dev/thread556279.html
Динамическое создание кнопок на Mono Android Программирование Android
Доброго времени суток. Разработку под Андроид начал изучать совсем недавно. Выбрал следующую задачу: при запуске проекта подключаемся бд SQLite, с определенной таблицы я получаю строки, в которых...
Программирование Android Как? Приложение с уже "укомплектованной" БД. (решено)
Добрый день. Есть идея хранить уровни в БД (несложная игра, построенная на графах). Допустим, саму БД с уровнями я заполню в десктопном редакторе. Вопрос: как потом включить этот файл БД в...
Программирование Android Действие на нажатие http://www.cyberforum.ru/android-dev/thread553301.html
вот нашел урок http://startandroid.ru/uroki/vse-uroki-spi...ilozhenija.html в принципе то что надо. Вот только как поменять код, чтобы вместо кнопок были картинки? Вот мой main.xml <?xml...
Программирование Android мини-синтезатор Здравствуйте. Я тут решил написать мини-синтезатор- звуки mp3. Все просто – в зависимости от клавиши проигрывается тот или иной звук. Я попробовал класс SoundPool import android.media.AudioManager;... подробнее

Показать сообщение отдельно
Zav
8 / 8 / 0
Регистрация: 19.04.2012
Сообщений: 26
25.04.2012, 12:07  [ТС]
NiRamz,
Цитата Сообщение от NiRamz Посмотреть сообщение
при нажатии на итем
не равно
Цитата Сообщение от Zav Посмотреть сообщение
При нажатии на ToggleButton
На итем я могу повесить слушателя путем listView.setOnItemClickListener и тем самым передать и id строки и позицию в listView. ToggleButton не есть item. Это его дочерний объект. Можно как-то обратится к дочернему объекту в итеме?

Я попробовал так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
list.setOnItemClickListener(new OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub
                idItem = id;
                edit_flag = true;   
                startToggle = (ToggleButton) view.findViewById(R.id.toggle);
                startToggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                    
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        // TODO Auto-generated method stub
                        Toast.makeText(getApplicationContext(), "position of toggle: "+idItem, Toast.LENGTH_SHORT).show();
 
                    }
                });
                                                Toast.makeText(getApplicationContext(),
                        "position of item: " + idItem, Toast.LENGTH_SHORT)
                        .show();
            }
});
Не получается. Не реагирует при нажатии на ToggleButton. При нажатии на другую область второй Toast работает.

Объясню почему. У меня в итеме два view: ToggleButton и TextView. Если не хардкодить, то по умолчанию TextView имеет
XML
1
android:focusable="false"
ToggleButton имеет
XML
1
android:focusable="true"
. В этом случае Item в ListView не реагирует на нажатие, пока мы не захардкодим для ToggleButton
XML
1
android:focusable="false"
. Проверьте сами. Потому что фокус у нас на ToggleButton. А слушатель у нас висит на Item.
Уф.. Что-то так подробно расписал..

В выше приведенном коде делается следующее: пока не кликнул ни на один из Item, ToggleButton не реагирует, т.к. пока что не сработал слушатель OnItemClickListener. Если кликну, к примеру, на пятый Итем, то потом при нажатии на любой ToggleButton будет показываться Toast "position of toggle: 5". И понятно почему. Потому что ToggleButton не есть Item.

Как-то надо по другому, чувствую, что упускаю какую-то банальную вещь в понимании.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru