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

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

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

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

31.08.2014, 16:18. Просмотров 596. Ответов 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, отловить нажатие кнопки (Программирование Android):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
31.08.2014, 23:00 #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  [ТС] #3
да я так и сделал, но это не совсем правильно, точнее совсем неправильно. у меня создается рандомное число кнопок их может быть 2, а может и 100, не буду же я 100 раз кейс прописывать, та и не знаю сколько кнопок у меня создастся. Вот думал может здесь кто что подскажет
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
01.09.2014, 00:42 #4
AleexBl, ну а хотя бы на одной кнопке код работает? Может быть, там и неверное обращение к id кнопки. А разве нельзя завести переменную, которая в onPostExecute посчитает количество созданных кнопок?
Если будешь знать количество или хотя бы оценишь, существует ли некий id среди компонентов, можешь написать процедуру.
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
01.09.2014, 00:50 #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  [ТС] #6
да, у меня на данный момент только 2 кнопки, работают по ид, код выполняется корректно. у меня при нажатии на каждую кнопку должны отсылаться разные данные. я не могу сообразить как мне определить какая кнопка нажата, проблема только в этом

Добавлено через 2 минуты
Sony17, спасибо, попробую
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2014, 00:57
Привет! Вот еще темы с ответами:

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

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

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

Как передать через intent нажатие кнопки в другом активити - Программирование Android
В первом активити у нас есть две кнопки 1 и 2. Во втором активити ещё две кнопки 3 и 4. Вопрос в том, как сделать так, чтоб при нажатии...


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

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

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