簡體   English   中英

Android OnClickListener復雜性

[英]Android OnClickListener complexity

我需要知道,在復雜性方面哪些更好。 要么為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.
    }

我在計算復雜性方面並不是那么好,等等,但這個問題只是令人惱火,我無法回答。 但據我所知,第一種方法增加了很多代碼行!

我會使用第二個選項的版本。 創建一個處理程序,然后使用switch語句確定哪個視圖收到了該事件。 它具有代碼效率,並且完全沒有雜亂。 此外,您不需要在xml中列出該屬性...我個人認為在您的活動中查找ViewById()並實現onClickListener要容易得多。 然后,您可以在switch語句中使用每個按鈕的id。

我一般喜歡后者。 除了我傾向於做一些看起來更像這樣的事情:

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;
   }
}

考慮使用findViewById(R.id.button_a).setOnClickListener(this);使您的Activity implement View.OnClickListener不是使用OnCreate()簡單附加findViewById(R.id.button_a).setOnClickListener(this);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM