Pre-Honeycomb (Android 3), каждая активность была зарегистрирована для обработки щелчков кнопок с помощью тега onClick
в XML-макете:
android:onClick="myClickMethod"
В рамках этого метода вы можете использовать view.getId()
и оператор switch для логики кнопок.
С введением Honeycomb я разбиваю эти действия на фрагменты, которые можно повторно использовать во многих разных видах деятельности. Большая часть поведения кнопок зависит от активности, и я хотел бы, чтобы код находился внутри файла фрагментов без использования старого (до 1.6) метода регистрации OnClickListener
для каждой кнопки.
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
Проблема заключается в том, что когда мой макет раздувается, он все еще выполняет Хостинг, который получает нажатие кнопки, а не отдельные фрагменты. Есть ли хороший подход к
- Зарегистрировать фрагмент для получения щелчков кнопки?
- Передайте события кликов из Activity в том фрагменте, к которому они принадлежат?