Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 13

AsyncTask, отловить нажатие кнопки

31.08.2014, 16:18. Показов 1323. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class RequestTaskT extends AsyncTask<String, Void, String> {
        protected void onPreExecute() {
              super.onPreExecute();          
            }
        @Override
        protected String doInBackground(String... params) {
            try {               
                DefaultHttpClient client = new DefaultHttpClient();
                ResponseHandler<String> res = new BasicResponseHandler();
                HttpGet request = new HttpGet(params[0]);                                                   
                request.setHeader("Content-Type: application/json","Authorization: Bearer"+""+access_token);                                                        
                String response = client.execute(request, res);                                                 
                parseDataPro(response);                                                
            }
            catch (Exception e) {
                System.out.println("Exp=" + e);                                                         
            } 
            return null;
        }
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
            layout=(LinearLayout)findViewById(R.id.llMain);;
            layoutParams.gravity=Gravity.CENTER;
            layoutParams.setMargins(0, 5, 0, 0);
            for(int i=0;i<titleBtn.size();i++){
            Button button=new Button(LogInAct.this);
            button.setLayoutParams(layoutParams);
            button.setText(titleBtn.get(i));
            layout.addView(button);
            button.setId(i);
            
            }
        }
    }
я создаю кнопки в процессе работы, рандомное количество. Как мне отловить их нажатие и выполнить различные действия, что то никак не могу сообразить, помогите пожалуйста каким то советом
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2014, 16:18
Ответы с готовыми решениями:

Отловить нажатие кнопки Done
Activity имеет элемент EditText ( android:inputType=&quot;number&quot;) подскажите как отловить нажатие DONE?

Отловить нажатие кнопки Home
Всем привет! Как отловить нажатие кнопки Home. В onKeyDown не получается.... Какие ещё варианты?

Не могу отловить первое нажатие клавиши BACK
Всем привет,подскажите пожалуйста добрые люди.Не могу отловить первое нажатие аппаратной клавиши Back. Код отрабатывает,но на второе...

5
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
31.08.2014, 23:00
AleexBl, не пробовал на Яве делать генерацию кнопок в коде, но предположу, что надо написать некую процедурку типа такой:
Java
1
2
3
4
5
public void onClick(View v) {
  switch (v.getId()) {
    case 1:
  }
}
0
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 13
31.08.2014, 23:20  [ТС]
да я так и сделал, но это не совсем правильно, точнее совсем неправильно. у меня создается рандомное число кнопок их может быть 2, а может и 100, не буду же я 100 раз кейс прописывать, та и не знаю сколько кнопок у меня создастся. Вот думал может здесь кто что подскажет
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
01.09.2014, 00:42
AleexBl, ну а хотя бы на одной кнопке код работает? Может быть, там и неверное обращение к id кнопки. А разве нельзя завести переменную, которая в onPostExecute посчитает количество созданных кнопок?
Если будешь знать количество или хотя бы оценишь, существует ли некий id среди компонентов, можешь написать процедуру.
0
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
01.09.2014, 00:50
Создавай коллекцию типа Button и созданные кнопки добавляй в нее. Затем, в методе onClick, запускай цикл от 0, до количества элементов коллекции и проверяй текущий View с каждым элементом коллекции через equals. Если условие срабатывает и объекты совпадают, значит нашел нужную кнопку, прерывай цикл(break) и дальше выполняй соот. действия.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ArrayList<Button> btnCollection = new ArrayList<Button>();
...
Button b1 = new Button("btn1");
btnCollection.add(b1);
...
Button bn = new Button("btnn");
btnCollection.add(btnn);
 
public void onClick(View v) {
      for (int i = 0; i < btnCollection.size(); i++) {
            if (v.equals(btnCollection.get(i))) {
                   // кнопка найдена
                   break;
            }
      }
}
0
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 13
01.09.2014, 00:57  [ТС]
да, у меня на данный момент только 2 кнопки, работают по ид, код выполняется корректно. у меня при нажатии на каждую кнопку должны отсылаться разные данные. я не могу сообразить как мне определить какая кнопка нажата, проблема только в этом

Добавлено через 2 минуты
Sony17, спасибо, попробую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2014, 00:57
Помогаю со студенческими работами здесь

Определить нажатие кнопки Home и кнопки сворачивания приложения
По аналогии с backPressed: @Override public void onBackPressed() { }

Не обрабатывается нажатие кнопки
ImageView btn1 = new ImageView(this); btn1.setImageResource(R.drawable.gorod_cveta_button1); btn1.setLayoutParams(new...

Реакция кнопки на нажатие
Стандартная кнопка визуально реагирует на нажатие. А когда изменяешь фон кнопки, то всякая визуальная реакция исчезает. Как-то можно это...

Долгое нажатие кнопки
Нужно выполнять действие по зажатию клавиши: есть кнопка увеличения громкости, при её зажатии звук увеличивается. Пробовал longClick -...

Не срабатывает нажатие кнопки в Dialog
Необходимо при запуске окна, запрашивать от пользователя логин. Если логин введен - приложение продолжает свою работу. Если нет, то...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru