Android OnClickListener 多个视图? [复制]

Posted

技术标签:

【中文标题】Android OnClickListener 多个视图? [复制]【英文标题】:Android OnClickListener multiple views? [duplicate] 【发布时间】:2016-09-15 10:50:10 【问题描述】:

OnClickListener 最佳实践?

如果您有一个 Activity 和 10 个按钮,那么最佳实践是应该为每个 View (Button) 创建 OnClickListener 还是创建单个 onClickListener 更好?只需使用带有视图 ID 的switch 来确定点击的View

【问题讨论】:

您可以将相同的单击事件处理程序分配给布局中的多个视图。然后在方法中,检查 which 是触发事件的 View。 你可以选择第二个选项(1 个监听器和开关) 如果可能的话,不要投票指导其他人 【参考方案1】:
@Override
public void onClick(View v) 
   switch (v.getId()) 
      case R.id.btn_1:
         //Logic_1
      break;
      case R.id.btn_2:
         //Logic_2
      break;
   

【讨论】:

【参考方案2】:

我知道你知道代码,所以我只能说:

Switch 更好 case 或 switch 语句被认为更易于阅读和维护

缩进级别比 if 更容易管理。

【讨论】:

这可能是唯一的答案,我知道代码并且没有要求示例,而只是在实践中什么是更好的选择。感谢您的一些实际建议! 我很乐意为您提供帮助。谢谢。【参考方案3】:

如果你在 Google 或 *** 中搜索一下..

Multiple Buttons `OnClickListener()` android

最好的解决方案是切换:

@Override
public void onClick(View v) 

    switch (v.getId()) 

        case R.id.oneButton:
            // do your code
            break;

        case R.id.twoButton:
            // do your code
            break;

        case R.id.threeButton:
            // do your code
            break;

        default:
            break;
    


【讨论】:

【参考方案4】:

你可以使用任何你喜欢使用的东西,因为作为计算点两者都是相同的,但是如果你想对你的代码行进行排序,那么使用带有 switch case 的信号

参考见这个 Multiple Buttons `OnClickListener()` android

【讨论】:

它们不一样,每一个新的点击监听器都是activity内部一个新的不同的内部类 请看programmers.stackexchange.com/questions/110106/… as computational point both are same 这是错误的

以上是关于Android OnClickListener 多个视图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Android OnClickListener 多个视图? [复制]

Android多线程——Handler

Android onClickListener实现最佳实践

(android.view.View$OnClickListener)' 在一个空对象引用 Kotlin

Android 工具栏项 OnClickListener

XML 中的 Android onClick 与 OnClickListener