OnClick()事件和OnClickListener之间的区别?

Pra*_*mar 21 android onclick

我总是onclick()在大多数项目中使用事件.但是,我读到了OnClickListener().谁能说出这两者之间有什么区别?哪一个最适合在Android应用程序中使用?

Sea*_*wen 28

我不确定问题是否清楚.View.OnClickListener是一个定义onClick(View)方法的接口.如果你有一个打算监听点击的类,你应该都实现接口(如果还没有扩展一个类),并实现这个方法.你必须同时使用两者; 他们不是某种替代品.


Ron*_*nie 23

OnClickListener 是您需要实现的接口,可以在java代码中设置为视图.

最近,android为被调用的视图添加了一个xml属性android:onclick,可用于直接在视图的活动中处理点击,而无需实现任何接口.

两者的功能相同,只需通过java代码设置,另一个通过xml代码设置.


mom*_*omo 21

我假设onClick你使用的是你在XML Layout中定义的那个.这两个是替代方案,可以起到相同的作

  1. onClickXML Layout中的with function binding是onClick与它将调用的函数之间的绑定.该函数必须有一个参数(the View)才能使onClick正常运行.

  2. An OnClickListener是任何类都可以实现的接口.由于它是任何类都可以实现的接口,因此它具有更大的灵活性和更复杂的形式.您可以拥有的灵活性很少OnClickListener

    • 如果需要,您可以轻松地将一个侦听器实现与另一个实现交换.
    • 一个OnClickListener让你单击事件的动作/行为分离开来的View触发事件.虽然对于简单的情况,这对于复杂的事件处理来说并不是什么大问题,但这可能意味着更好的可读性和代码的可维护性
    • 由于OnClickListener是接口,实现它的类在确定实例变量和处理事件所需的方法时具有灵活性.同样,在简单的情况下,这不是什么大问题,但对于复杂的情况,我们不希望将与事件处理相关的变量/方法与触发事件的View代码混淆.


Hay*_*ian 11

OnClickListener是等待某人实际点击的内容,onclick确定当有人点击时会发生什么

监听器是一个类,onclick是一个方法,这种区别在简单的情况下不是很有用,但如果你想要更复杂,那就更加必要


Shw*_*dha 5

Button button = (Button)findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // Do stuff
    }
});
Run Code Online (Sandbox Code Playgroud)

OnClickListener是一个接口,onClickOnClickListener的方法.