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

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

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

Применение общего обработчика нажатия для всех кнопок на форме - Программирование Android

01.07.2013, 21:28. Просмотров 992. Ответов 2
Метки нет (Все метки)

Добрый день.
Как можно сделать так, чтобы ко всем кнопкам на экране ,применялся один обработчик.
Я знаю, что можно прописать каждой кнопке этот обработчик, но можно ли это сделать сразу для всех, из принципа чтобы было более эффективно и меньше кода писать.
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
public class MainActivity extends Activity implements OnClickListener {
    Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,btnDel,btnSqrt,btnSqr,btnInv,btnProc,btnAdd,btnPoint,btnEqual,btnSub,btnMul;
    EditText editText;
    TextView textview1;
    float num=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Находим элементы на экране
        editText = (EditText) findViewById(R.id.editText1);
        textview1 = (TextView) findViewById(R.id.textView1);
        
        btn0 = (Button) findViewById(R.id.btn0);
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn3 = (Button) findViewById(R.id.btn3);
        btn4 = (Button) findViewById(R.id.btn4);
        btn5 = (Button) findViewById(R.id.btn5);
        btn6 = (Button) findViewById(R.id.btn6);
        btn7 = (Button) findViewById(R.id.btn7);
        btn8 = (Button) findViewById(R.id.btn8);
        btn9 = (Button) findViewById(R.id.btn9);
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnDel = (Button) findViewById(R.id.btnDel);
        btnEqual = (Button) findViewById(R.id.btnEqual);
        btnInv = (Button) findViewById(R.id.btnInv);
        btnMul = (Button) findViewById(R.id.btnMul);
        btnPoint = (Button) findViewById(R.id.btnPoint);
        btnProc = (Button) findViewById(R.id.btnProc);
        btnSqr = (Button) findViewById(R.id.btnSqr);
        btnSqrt = (Button) findViewById(R.id.btnSqrt);
        btnSub = (Button) findViewById(R.id.btnSub);
        btn0.setOnClickListener(this);   //здесь описываю обработчик.(Аналогично делаю для всех остальных)
        
    }
Подскажите как сделать это. За ранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2013, 21:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Применение общего обработчика нажатия для всех кнопок на форме (Программирование Android):

setOnTouchListener для всех кнопок - Программирование Android
Пытаюсь ловить у кнопок MotionEvent.ACTION_DOWN и MotionEvent.ACTION_UP. btn1.setOnTouchListener(new View.OnTouchListener() { ...

Доступ к контролу на форме из обработчика - Программирование Android
на форму кинул две кнопки и один эдит, как мне из обработчика кнопки получить этот эдит? оно его не видит почему то...

Обработка нажатия кнопок - Программирование Android
Здравствуйте! Недавно начал изучать программирование под Android. Узнал что для обработки нажатия кнопок используется как минимум 2...

Обработка нажатия кнопок - Программирование Android
Всем привет! Целый день мучала проблема. Что имею: телефон по bluetooth подключается к arduino и передает туда байты, в дуине это...

Поменять цвет кнопок, не убрав анимацию нажатия - Программирование Android
Ребята, как это сделать? http://savepic.ru/13462938.jpg Как видите, текст в кнопках белый, а кнопки - синие и зелёные. Если задать...

Назначение комбинаций клавиатуры для нажатия кнопок на форме - Delphi
здравствуйте ) как прикрепить к кнопкам определенные клавиши, при нажатии на которые будут срабатывать кнопки??? Заранее блаодарен ) )

2
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.07.2013, 21:54 #2
можно еще в с лаяута задавать
Java
1
android:onClick="onClick"
в активити
Java
1
2
public void onClick(View view){
}
можно в цикле задать
Java
1
2
3
4
5
6
7
8
List<View> list = new ArrayList<View>();
list.add(findViewById(R.id.btn0));
list.add(findViewById(R.id.btn1));
list.add(findViewById(R.id.btn2));
...
for(View view : list) {
        view.setOnClickListener(this);
}
также можно в цикле искать все кнопки вместо вызовов findViewById, в ViewGroup есть методы getChildCount() и getChildAt(int index) при помощи которых можно рекурсивно перебрать все View.

также можно в цикле получать id кнопки по имени

Java
1
2
3
4
for(int i = 0; i < 10; i++) {
     int viewId = this.getResources().getIdentifier("btn" + i, "id", this.getPackageName());
     findViewById(viewId).setOnClickListener(this);
}
1
strevg
1 / 1 / 0
Регистрация: 24.06.2013
Сообщений: 57
01.07.2013, 22:12  [ТС] #3
Большое спасибо))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2013, 22:12
Привет! Вот еще темы с ответами:

один обработчик нажатия для всех кнопок - C# WPF
На панель динамически добавляю какое-то количество кнопок ,с похожим функционалом. Есть один и тот же обработчик нажатия для всех этих...

Как из обработчика Form1_KeyPress вызвать событие для нажатия заданной по имени кнопки на форме (кнопки 0-9) - C#
Пишу калькулятор. Есть несколько кнопок (Button) с цифрами и знаками. Для цифр имена кнопок: but_0, but_1, ... but_9 На все кнопки с...

Событие нажатия на button для всех элементов-кнопок - C#
Принцип я в общем-то понимаю. Надо взять все контролируемые кнопки на форме и добавить к ним событие нажатия на кнопку, но не понимаю как...

Смена кнопок на форме после нажатия определенной кнопки - VBA
Есть три кнопки : Удалить, редактировать и изменить. Как можно сделать чтобы на форме акцесса форма обновлялась с другими кнопками....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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