哪一个更好,在按钮或视图上设置OnClickListener?

时间:2015-04-30 09:36:18

标签: android

我想在OnClickListener上设置Button。我应该将其投放到Button还是将其存入View?您可以从下面的代码中看到,前者将View投射到Button,而后者则以View的形式使用小部件。后者是否更好,因为它不需要进行铸造,或者只是做同样的事情?

并非我不了解如何在按钮上设置点击监听器。我只想从表现和最佳实践的角度来了解它。



View.OnClickListener listener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
}

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(listener);






View.OnClickListener listener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
}

View button = findViewById(R.id.button);
button.setOnClickListener(listener);




4 个答案:

答案 0 :(得分:2)

相同,您只保存演员表(演出)。

如果您不需要View对象我更喜欢

findViewById(R.id.button).setOnClickListener(listener);

答案 1 :(得分:2)

我相信表现没有区别。您的代码可读性有哪些变化,因此,如果您为按钮设置了clickListener,并且稍后在代码中也使用了按钮实例,则可能需要使用“button”.setOnClickListener。

因为大部分时间你不需要保留点击视图的引用,我建议使用类似ButterKnife

的内容

答案 2 :(得分:1)

表现明智,几乎没有区别。为了可读性,我建议使用Button而不是View。

答案 3 :(得分:0)

我非常确定性能上的差异很小,或者只是没有区别。

但是,View和Button之间存在差异。

为了缩短答案并尽可能具体,我会告诉您,如果您希望按钮尽可能为“标准”(至少是Android标准),您应该使用按钮,但如果您想要创建一个自定义按钮,比你应该继续使用View。

为了使它更加清晰,Buttom实际上是一个View,所以当你使用Button时,你实际上使用的是一个为了成为一个按钮而自定义的视图,并且就像一个按钮。

如果您需要更多详细信息,请询问,我会尝试帮助或链接您一些文档。