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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
#1

Обращение к объекту (button) по id, который будет создан при запуске приложения - Программирование Android

02.04.2013, 12:33. Просмотров 1589. Ответов 21
Метки нет (Все метки)

Здравствуйте.
Подскажите как реализовать обработчик кнопок, коотрые создаются циклом. Т.е. кнопки делаются в цикле, им присваивается id. Но метод onClick не понимает этот id, т.к. он будет создан только во время запуска.
Как можно реализовать обращение метода onClick к еще не созданным объектам(они будут созданны при запуске приложения)?
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 12:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обращение к объекту (button) по id, который будет создан при запуске приложения (Программирование Android):

Не удается прочитать текстовый файл который создан из приложения - Программирование Android
Задача открывать из написаного мною приложения тектовые файлы которые не созданы этим приложением! Я сейчас пришу приложение и для...

Как создать layout, который запускается один раз, при первом запуске приложения? - Программирование Android
Как создать layout, который запускается один раз, при первом запуске приложения? т.е. один раз запустилось и всё.

Как присвоить объекту Button координату (x,y) на форме? - Программирование Android
Необходимо задать объекту координату, чтобы например кнопка, когда на нее нажали, переместилась в другое место экрана. На Delphi например...

Как задать tabsheet в pagecontrol, который будет открываться при запуске приложения? - Delphi
У меня есть pagecontrol в нем 5 tabsheet, как сделать, чтобы при запуске программы по умолчанию всегда открывалась первая tabsheet, а то...

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

Отсортировать массив по возрастанию. Найти максимальные в массиве, который будет создан после удаления всех максимальных элементов - C (СИ)
Условие: Отсортировать массив по возрастанию. Найти максимальные в массиве, который будет создан после удаления всех максимальных...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
02.04.2013, 13:26 #2
ты можешь использовать tag setTag
при создании кнопки задать tag
и в методе onClick у View ты можешь взять tag getTag


ты можешь задать id в файле
id.xml

HTML5
1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="mainScrollView" />
    <item type="id" name="adsContaiber" />
    
</resources>
и когда создаешь кнопки их присваивать
и в onClick сравнивать
0
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
02.04.2013, 14:06  [ТС] #3
Идею с тагом понял, но не совсем понял как в методе onClick сравнить. Можно пример? Спасибо.
0
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
03.04.2013, 12:49  [ТС] #4
Сделал так:
В цикле присваиваются tag к каждой созданной кнопке.
Затем метод онклик:
public void onClick (View v) {
switch ((Integer) v.getTag()) {
case 1:
блаблабла
break;
case 2:
блаблабла
break;
}
}


При нажатии на кнопку выпадает в ошибку. Я вот еще не совсем уверен с обработчиком. он выглядит так: btnNew.setOnclickListener(this); в теле цикла создания кнопок. Может тут что не так? Подскажите, кто поопытнее. спасибо.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.04.2013, 15:59 #5
какую ошибку?
0
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
03.04.2013, 16:29  [ТС] #6
Ошибка: The aplication имяприложения has stopped unexpectedly. Ниче не понятно. Люди добрые, подскажите что не так. Буду очень благодарен.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.04.2013, 16:41 #7
смотрите логи.
0
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
03.04.2013, 16:43  [ТС] #8
Логи не пашут. Особенности Eclipse в Ubuntu на виртуалке. =) Включаешь логи, а там пустота.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.04.2013, 17:10 #9
тогда ничем не могу помочь.
0
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
03.04.2013, 17:12  [ТС] #10
Таки допилил эклипс, логи появились.
Чесно говоря понятнее не стало: Пишет вот что:
FATAL EXCEPTION:main
java.long.ClassException:java.long.String
И далее ругань на view.performClick.
0_o
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.04.2013, 17:15 #11
полный лог дайте

Добавлено через 1 минуту
long? ClassException? вы сами перепечатывали?
может ClassCastException?
0
Termit___
5 / 5 / 0
Регистрация: 02.04.2013
Сообщений: 85
03.04.2013, 17:23  [ТС] #12
Как нажимаешь сгенерированную кнопку в логах такая ерунда:
04-03 13:01:14.417: DEBUG/AndroidRuntime(332): Shutting down VM
04-03 13:01:14.417: WARN/dalvikvm(332): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): FATAL EXCEPTION: main
04-03 13:01:14.417: ERROR/AndroidRuntime(332): java.lang.ClassCastException: java.lang.String
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at ru.termit.firsttimedotahero.Second.onClick(Second.java:70)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at android.view.View.performClick(View.java:2485)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at android.view.View$PerformClick.run(View.java:9080)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at android.os.Handler.handleCallback(Handler.java:587)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at android.os.Handler.dispatchMessage(Handler.java:92)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at android.os.Looper.loop(Looper.java:123)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at java.lang.reflect.Method.invokeNative(Native Method)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at java.lang.reflect.Method.invoke(Method.java:507)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-03 13:01:14.417: ERROR/AndroidRuntime(332): at dalvik.system.NativeStart.main(Native Method)
04-03 13:01:14.427: WARN/ActivityManager(60): Force finishing activity ru.termit.firsttimedotahero/.Second
04-03 13:01:14.937: WARN/ActivityManager(60): Activity pause timeout for HistoryRecord{40744fa0 ru.termit.firsttimedotahero/.Second}
04-03 13:01:24.438: WARN/ActivityManager(60): Launch timeout has expired, giving up wake lock!
04-03 13:01:24.958: WARN/ActivityManager(60): Activity idle timeout for HistoryRecord{406f6ac8 ru.termit.firsttimedotahero/.FirstActivity}
04-03 13:01:30.167: WARN/ActivityManager(60): Activity destroy timeout for HistoryRecord{40744fa0 ru.termit.firsttimedotahero/.Second}
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
03.04.2013, 17:33 #13
Termit___, весь лог под спойлер выложи

Добавлено через 41 секунду
опоздал =)
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.04.2013, 17:34 #14
ошибка приведение типов
ZygoteInit ваш класс? смотрите строку 839.
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
03.04.2013, 18:02 #15
Цитата Сообщение от V0v1k Посмотреть сообщение
ZygoteInit
Это же системный класс Android.
Метод onClick смотри. Где-то с приведением типов накасячил. Если метод небольшой сюда запости.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2013, 18:02
Привет! Вот еще темы с ответами:

При запуске второго потока не отправляется сигнал readyToSend объекту nthread - C++ Qt
Здравствуйте, бьюсь уже целый день над проблемой. Суть задачи: Нужно запустить второй поток по событию нажатия кнопки на форме. Не...

Сделать модуль приложения, который будет регистрировать email - C#
1 Нужно сделать модуль приложения, который будет регистрировать email https://mail.google.com/. 2.приложение должно быть WinForm ...

Ошибка при запуске приложения из приложения WinAPI - C++ WinAPI
Здравствуйте. Есть следующий код, найденный на просторах интернета. int main(int argc, char **argv) { STARTUPINFO si; ...

Обращение к объекту - ActionScript
Ручками создаю объект типа MovieClip именем Monitoring1 и помещаю на него по 5 объектов CheckBox с именами CB1..CB5 и 5 объектов типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.04.2013, 18:02
Ответ Создать тему
Опции темы

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