Несколько мероприятий, использующих тот же слушатель
-
30-09-2019 - |
Вопрос
Я получил 4 активита, которые все включают XML-нижний колонтитул, который содержит 4 кнопки (один для каждого действия). Теперь я хотел бы настроить OnClickListeners к этим кнопкам (это самостоятельное меню в нижнем колонтитуле).
Вопрос в том, как я могу использовать слушателей, чтобы я мог повторно использовать код? У меня есть две идеи:
Создайте класс, который реализует OnClickListener и в каждом виду, я бы получил кнопки, а затем создать новый экземпляр класса прослушивателя и сделать кнопку. WSETONCLICKLICHLISTENER (OnClickListener) Проблема в том, что в классе слушателя, как бы я проверил, какая кнопка называется мероприятие? И как бы я создал намерение начать деятельность, обычно я бы сделал: намеренные намерения = новое намерение (отактивность. Это, ToCitivty.Class), но у меня нет ссылки на отвращение.
Создайте базовый класс, который простирается от активности, а затем 4 Actives продлится из базового класса. Затем я хотел бы настроить слушателей в базовом классе. Проблема вот в том, что я не могу получить ссылки на кнопки, выполняя кнопку Button1 = (кнопку) FindViewbyID (R.ID.Menu_Button1); Button1 будет нулевой. Я даже не назвал SeteventView, потому что это должно быть сделано в действии не в базовом классе.
Есть идеи?
Спасибо
Решение
Тот же код здесь:
public class MyClass extends Activity implements View.OnClickListener{
btnA=(Button)findViewById(R.id.btnA);
btnA.setOnClickListener(this);
btnB=(Button)findViewById(R.id.btnB);
btnB.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
Button clickedButton = (Button) v;
switch (clickedButton.getId())
{
case R.id.btnA:
Intent regIntent = new Intent(Home.this,Registration.class);
startActivityIfNeeded(regIntent, 1);
break;
case R.id.btnB:
//Some code
break;
}
}
(отредактировано как первоначальная первая строка нарушена в формате кода.