编辑:不,这不是重复的,因为给定链接要求比较 setOnClickListener
和 android:onClick
。我甚至不要求比较,但我问的是实现 View.OnClickListener
的优势。
请自由投票以重新开放。
许多人根据喜好使用
public class TrumpLocator extends Clinton implements View.onClickListener{
@Override
public void onClick(View v){
//...
}
}
但是,如果我没记错的话,无论哪种方式,您都必须在 Button
上执行以下操作:
android:onClick="onClick"
但是,如果我没记错的话,如果我们不重写 onClick
并实现 View.onClickListener
,我们将实现相同的效果:
//no override and no "implements onClickListener"
public void onClick(View v){
//...
}
和
android:onClick="onClick"
那么,与简单应用点击监听器相比,实现该方法有什么优势吗?这不是浪费代码吗?
最佳答案
either way, on your Button you have to do:
android:onClick="onClick"
不,这不是必需的。
我认为你可能把它搞反了。通过使用 android:onClick="onClick"
,您需要一个在引号中包含该名称的 public void
方法。
public void onClick(View v){
//...
}
这与实现接口(interface)类似,但并不完全相同。换句话说,它也可能是 android:onClick="handleClick"
,那么你需要
public void handleClick(View v){
//...
}
人们可能不喜欢这样做,因为它可能会导致拼写错误和附加点击监听器的不确定性。
现在,Activity 不需要实现接口(interface)本身,您可以将匿名类监听器单独附加到 View 。
关于android - 如果我们必须设置 android :onClick either way? 为什么我们要实现 View.OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471106/