不是对Activity中的所有按钮使用单个onClick()
方法,然后使用switch语句来确定单击了哪个按钮,而是为不同的按钮设置了不同的方法。
android:onClick
XML参数。例如,对于一个按钮,我将onClick参数设置为onClickCalculateButton
对于另一个按钮,我将onClick XML参数设置为onClickNewFileButton
。
这是一个很好的编码实践吗?
答案 0 :(得分:2)
在这种情况下没有真正的惯例。我见过优秀的程序员这样或那样做,我猜大多数人都同意。
对于不直接的按钮(不在activity / fragment中)并且不能与ButterKnife一起使用我没有在XML中设置click侦听器而是在具有switch的特定类(activity / fragment / whatever)中实现它-case然后参考具体方法。
switch(view.getId()){
案例R.id.button_one:
clickOnButtonOne(视图);
中断; ...
对于我知道其生命周期(在片段/活动中)的按钮,我使用ButterKnife并使用它注释(
@OnClick(R.id.button)
答案 1 :(得分:0)
我会避免在XML中使用android:onClick param。随着项目变得越来越大,管理变得更加困难,尤其是在处理碎片时。
我遵循您为命名所做的相同约定,但我为Activity或Fragment中的每个按钮创建了单独的onClickListener类。通过onCreate,我可以更轻松地跟踪哪个按钮可以通过Android Studio跟踪其来源。
但是,您可能正在使用XML标记的原因与创建较少代码的原因相同。如果是这种情况,我会考虑使用ButterKnife(http://jakewharton.github.io/butterknife/)。它使用注释来生成所需的代码,并且非常干净。