title: Can you use the same OnClickListener for different buttons?
body: <p>In android, can I use the same OnClickListener for different buttons?  If yes, how do I get which button the click is generated from?  I currently have 4 buttons and each button have their own OnClickListener.  Each of the OnClickListener are doing the same exact thing with the exception of getting the text of the button being clicked.  I want to create a single OnClickListener but I can't figure out how to determine which button is being clicked.  Thank you</p>
  
  <pre><code>protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
  
          mTts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
  
              @Override
              public void onInit(int arg0) {
                  // TODO Auto-generated method stub
  
              }
          });
          setContentView(R.layout.home);
          Button button1 = (Button)findViewById(R.id.button1);
          Button button2 = (Button)findViewById(R.id.button2);
          Button button3 = (Button)findViewById(R.id.button3);
          Button button4 = (Button)findViewById(R.id.button4);
  
          //Load First Word
          button1.setOnClickListener(button1ClickListener);
          button2.setOnClickListener(button2ClickListener);
          button3.setOnClickListener(button3ClickListener);
          button4.setOnClickListener(button4ClickListener);
  
      }
  </code></pre>
  
  <p>Code for the listener with the the different part in bold</p>
  
  <pre><code>private OnClickListener button1ClickListener = new View.OnClickListener() {
      @Override
      public void onClick(View arg0) {
          **Button button = (Button)findViewById(R.id.button1);**
          handleButtonClick(button);
      }
  };
  
  private OnClickListener button2ClickListener = new View.OnClickListener() {
      @Override
      public void onClick(View arg0) {
          **Button button = (Button)findViewById(R.id.button2);**
          handleButtonClick(button);
  
      }
  };
  
  private OnClickListener button3ClickListener = new View.OnClickListener() {
      @Override
      public void onClick(View arg0) {
          **Button button = (Button)findViewById(R.id.button3);**
          handleButtonClick(button);
  
      }
  };
  
  private OnClickListener button4ClickListener = new View.OnClickListener() {
      @Override
      public void onClick(View arg0) {
          **Button button = (Button)findViewById(R.id.button4);**
          handleButtonClick(button);
  
      }
  };
  </code></pre>
  
  <p>Code for handleButtonclick</p>
  
  <pre><code>private void handleButtonClick(Button button) {
          if(button.getText().equals(currentWord)){
              currentScore += availableScore;
              TextView score = (TextView)findViewById(R.id.textViewScore);
              score.setText(String.valueOf(score));
              currentIndex++;
              availableScore = 4;
              InitializeGame();
          }
          else{
              availableScore--;
              button.setEnabled(false);
          }
      }
  </code></pre>
  
  <p>With recommendation from Karthik I modified my code to the following:</p>
  
  <pre><code>protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
  
          mTts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
  
              @Override
              public void onInit(int arg0) {
                  // TODO Auto-generated method stub
  
              }
          });
          setContentView(R.layout.home);
          Button button1 = (Button)findViewById(R.id.button1);
          Button button2 = (Button)findViewById(R.id.button2);
          Button button3 = (Button)findViewById(R.id.button3);
          Button button4 = (Button)findViewById(R.id.button4);
  
          //Load First Word
          button1.setOnClickListener(buttonClickListener);
          button2.setOnClickListener(buttonClickListener);
          button3.setOnClickListener(buttonClickListener);
          button4.setOnClickListener(buttonClickListener);
  
      }
  </code></pre>
  
  <p>OnClickListenerCode</p>
  
  <pre><code>private OnClickListener buttonClickListener = new View.OnClickListener() {
  
          @Override
          public void onClick(View arg0) {
              handleButtonClick((Button)arg0);
          }
      };
  </code></pre>