0

我需要知道,在复杂性方面什么更好。从 xml 中为每个按钮标识一个单独的 onClick 方法,如下所示:

android:onClick:"clickHandler"

和java代码:

public void clickHandler(View v){ 
         Button b = (Button) v;
         //do something for that button
      };

, 或为所有按钮确定一种方法,并用 if 条件分隔它们。

Public void clickHandler(View v){
      Button b = (Button) v; 
      if(b.getText().equals("a")){
      }
         elseif(b.getText().equals("b")){
            }
       //And so on.
    }

我在计算复杂度等方面不是那么好,但是这个问题很烦人,我无法回答。但是据我了解,第一种方法增加了很多代码行!

4

2 回答 2

1

我会使用第二个选项的版本。创建一个处理程序,然后使用 switch 语句来确定哪个视图接收到事件。它的代码效率很高,而且一点也不凌乱。此外,您不需要在 xml 中列出该属性......我个人认为在您的活动中查找 ViewById() 并实现 onClickListener 要容易得多。然后你可以在你的 switch 语句中使用每个按钮的 id。

于 2012-07-10T20:27:55.220 回答
1

我一般喜欢后者。除了我倾向于做一些看起来更像这样的事情:

public void onClick(View v){
   switch(v.getId()){
      case R.id.button_a:
        //do button a logic here
        break;
      case R.id.button_b:
        //do button b logic here
        break;
   }
}

考虑让你的Activity implement View.OnClickListener比在你的OnCreate()简单附加findViewById(R.id.button_a).setOnClickListener(this);

于 2012-07-10T20:29:03.620 回答