如果我们必须以任何一种方式设置 android:onClick,为什么我们要实施 View.OnClickListener?
Why do we implement View.OnClickListener if we can have to set android:onClick either way?
编辑: 不,这不是重复给定的 link 要求比较 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){
//...
}
这与实现接口类似,但不完全相同。换句话说,也可以是android:onClick="handleClick"
,那么你需要
public void handleClick(View v){
//...
}
人们可能不喜欢这个,因为它会导致拼写错误和点击监听器附加位置的不确定性。
现在,Activity 不需要自己实现接口,您可以将匿名 class 侦听器单独附加到视图。
编辑: 不,这不是重复给定的 link 要求比较 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){
//...
}
这与实现接口类似,但不完全相同。换句话说,也可以是android:onClick="handleClick"
,那么你需要
public void handleClick(View v){
//...
}
人们可能不喜欢这个,因为它会导致拼写错误和点击监听器附加位置的不确定性。
现在,Activity 不需要自己实现接口,您可以将匿名 class 侦听器单独附加到视图。