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
}
});
Проблема в том, что, когда мои макеты завышены, все же хост-активность получает нажатия кнопок, а не отдельные фрагменты. Есть ли хороший подход к
- Зарегистрировать фрагмент для получения нажатия кнопки?
- Передать события клика из Действия в фрагмент, к которому они принадлежат?