У меня есть «Заголовок» в верхней части 3 списков, который содержит простые кнопки «Создать чтение, обновление» и «Удалить» для редактирования списка.
Как мне подклассифицировать заголовоктак что я могу перезаписать слушателя в TaskHeader, ProjectHeader, ClientsHeader (Subclasses)
, видя, что макет, создание кнопки, назначение и т. д. могут быть выполнены в одной и той же реализации, и только назначение слушателя может быть делегированоконкретный подкласс.
Обновлено с предлагаемым решением
Интерфейс
import android.view.View.OnClickListener;
public interface AttachClickListeners {
void attachCreateListener(OnClickListener l);
void attachReadListener(OnClickListener l);
void attachUpdateListener(OnClickListener l);
void attachDeleteListener(OnClickListener l);
}
Заголовок
public class Header extends LinearLayout implements AttachClickListeners {
/* removed for shortness */
public void attachCreateListener(OnClickListener listener) {
insertBtn.setOnClickListener(listener);
}
public void attachReadListener(OnClickListener listener) {
selectBtn.setOnClickListener(listener);
}
public void attachUpdateListener(OnClickListener listener) {
updateBtn.setOnClickListener(listener);
}
public void attachDeleteListener(OnClickListener listener) {
deleteBtn.setOnClickListener(listener);
}
, затем каждый раз, когда я создаю заголовок, я просто передаю другой объект слушателя, как предложено @ elijah