В вашей раскладке вы можете указать android:onClick
для каждой кнопки. Кроме того, поскольку это просто еще один атрибут, вы также можете указать его в стиле или теме, эффективно устанавливая их все сразу.
Недостатком использования этого в качестве темы является то, что onClick будет применяться ко ВСЕМ представлениям. Наверное, не то, что вы хотите. Поэтому я бы предложил указать android:onClick
для каждой кнопки.
Другой подход заключается в создании пользовательского представления, которое расширяется от Button и обеспечивает общие функции onClick.
Вот пример использования подхода android:onClick
. В макете определите свои кнопки и укажите значение onClick:
<Button
android:id="@+id/button1"
android:tag="a"
android:onClick="doSomething"
... />
<Button
android:id="@+id/button2"
android:tag="a"
android:onClick="doSomething"
... />
<Button
android:id="@+id/button3"
android:tag="b"
android:onClick="doSomething"
... />
И ваша деятельность будет иметь метод doSomething
:
public void doSomething(View v) {
// in here, we can branch off based on the ID or the tag.
switch (v.getId()) {
case R.id.button1:
// something
break;
case R.id.button2:
// something
break;
case R.id.button3:
// something
break;
}
if (v.getTag() != null && v.getTag().equals("a")) {
// do something for the button's tagged with 'a'
}
}