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

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

Войти
Регистрация
Восстановить пароль
 
AleexBl
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 13
#1

AsyncTask, отловить нажатие кнопки - Программирование Android

31.08.2014, 16:18. Просмотров 591. Ответов 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);
            
            }
        }
    }
я создаю кнопки в процессе работы, рандомное количество. Как мне отловить их нажатие и выполнить различные действия, что то никак не могу сообразить, помогите пожалуйста каким то советом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2014, 16:18     AsyncTask, отловить нажатие кнопки
Посмотрите здесь:

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

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

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

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

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

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

Обработать нажатие на кнопки в уведомлении - Программирование Android
Еще раз здравствуйте. Дело такое. Есть уведомление, в нем две кнопки. Они должны выполнять различные действия (вызов методов)....

Изменение языка приложения через нажатие кнопки - Программирование Android
Здравствуйте! Есть приложение, в нём есть кнопка &quot;Язык&quot;, и я хочу, чтобы по нажатии на кнопку выскакивала менюшка с выбором языка. Как это...

Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ? - Программирование Android
У меня есть ListView, у него есть своя разметка на которой находится строчки на каждой из которых Button и textView. Как мне обработать...

AsyncTask - Программирование Android
Здравствуйте, при использовании двух одинаковых методов получается разный результат. AsyncTask в одном случае успешно передает данные в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
31.08.2014, 23:00     AsyncTask, отловить нажатие кнопки #2
AleexBl, не пробовал на Яве делать генерацию кнопок в коде, но предположу, что надо написать некую процедурку типа такой:
Java
1
2
3
4
5
public void onClick(View v) {
  switch (v.getId()) {
    case 1:
  }
}
AleexBl
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 13
31.08.2014, 23:20  [ТС]     AsyncTask, отловить нажатие кнопки #3
да я так и сделал, но это не совсем правильно, точнее совсем неправильно. у меня создается рандомное число кнопок их может быть 2, а может и 100, не буду же я 100 раз кейс прописывать, та и не знаю сколько кнопок у меня создастся. Вот думал может здесь кто что подскажет
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
01.09.2014, 00:42     AsyncTask, отловить нажатие кнопки #4
AleexBl, ну а хотя бы на одной кнопке код работает? Может быть, там и неверное обращение к id кнопки. А разве нельзя завести переменную, которая в onPostExecute посчитает количество созданных кнопок?
Если будешь знать количество или хотя бы оценишь, существует ли некий id среди компонентов, можешь написать процедуру.
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
01.09.2014, 00:50     AsyncTask, отловить нажатие кнопки #5
Создавай коллекцию типа 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;
            }
      }
}
AleexBl
0 / 0 / 0
Регистрация: 20.08.2014
Сообщений: 13
01.09.2014, 00:57  [ТС]     AsyncTask, отловить нажатие кнопки #6
да, у меня на данный момент только 2 кнопки, работают по ид, код выполняется корректно. у меня при нажатии на каждую кнопку должны отсылаться разные данные. я не могу сообразить как мне определить какая кнопка нажата, проблема только в этом

Добавлено через 2 минуты
Sony17, спасибо, попробую
Yandex
Объявления
01.09.2014, 00:57     AsyncTask, отловить нажатие кнопки
Ответ Создать тему
Опции темы

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