我的理解是,当我创建侦听点击一个按钮对象我必须:setOnclickListener VS OnClickListener VS View.OnClickListener
- 创建按钮对象
- 使用OnClickListner让它听用户点击
- 使用的onClick用户后执行的操作点击按钮
现在
- 哪里
setOnClickListener
配合到上述逻辑? - 哪一个实际听按钮点击?
- setOnclickListener?
- ONclickListener?
- View.OnClickListener?
- 那3个之间有什么区别?
以下是我在Android开发人员发现:
The example below shows how to register an on-click listener for a Button.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
您也可能会发现更方便地实现OnClickListener作为活动的一部分。这将避免额外的类加载和对象分配。例如:
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
}
虽然第二种方式不会比其他方式稍好一些吗?第一种和第三种方法首先找出哪个视图被点击并随后采取行动,而第二种方式则可以直接进入视图。好奇看别人说什么,因为我诚实地不是100%确定我的逻辑是否正确。 – CodyEngel
@赫斯基哈斯基。知道什么时候关注表现,什么时候关注表现。问问自己:用户点击的频率如何?当用户点击时什么是可接受的响应时间?我的目标设备每秒执行多少条Java指令?只有少量的指示才能确定哪个视图是重要的?还要考虑你将要做的工作来处理点击。计算OS内部的代码,可以执行数千,数万,甚至数十万个java指令。我想你会看到这个去哪里... – ToolmakerSteve
是否可以同时使用它们,我的意思不仅是“实现View.OnClickListener”,还有“SetOnClickListener” – Patzu