【发布时间】:2012-01-09 19:38:33
【问题描述】:
我在 3 个列表的顶部有一个 “标题”,其中包含用于编辑列表的简单的 Create Read Update 和 Delete 按钮。
我应该如何对 Header 进行子类化,以便我可以覆盖 TaskHeader、ProjectHeader、ClientsHeader(子类)中的侦听器
布局、按钮创建、分配等都可以在同一个实现中完成,只需将侦听器分配给特定的子类即可。
更新了建议的解决方案
界面
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 的建议传递一个不同的侦听器对象
【问题讨论】:
标签: android design-patterns refactoring