Jae*_*aeW 6 java android event-handling
有四种方法可以将onClickListener添加到可单击的视图(例如按钮):
所以我的问题是,你如何选择其中一种实现技术呢?根据某些条件是否有最佳实践,还是仅仅是程序员偏好的问题?
这里我们使用所谓的回调模式。
public class Button {
private Callback callback;
public Button(Callback callback) {
this.callback = callback;
}
public void update() {
// Check if clicked..
callback.onClick(this);
}
public interface Callback {
public void onClick(Button Button);
}
}
Button b = new Button(new Callback() {
@Override
public void onClick(Button b) {
System.out.println("Clicked");
}
});
Run Code Online (Sandbox Code Playgroud)
在我们的例子中,onClick 处理程序实现了 View.OnClickListener 接口。
关键点:
1)XML文件中的属性只能用于活动,正如@Karakuri提到的,它使用反射,速度很慢。
2) 匿名内部类对于访问封闭类的成员有特殊的规则(检查[1]、[2])。在某些情况下可能会发生内存泄漏(例如,使用 AsyncTask、Handler 进行线程处理)。
3) 在这里您可以完全访问封闭类的成员。
4) 是 3d 的变体。
可读性取决于处理程序的大小,小的逻辑可以内联,但对于较大的代码块,请考虑 3d 和 4th。
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |