title: Multiple onClick of a button in TableLayout
body: <p>I have a table layout where I display the values as below:</p>
  
  <p><img src="https://i.stack.imgur.com/zTN4q.png" alt="enter image description here"></p>
  
  <p>Now I am able to achieve on row click, but I have three buttons in each row.</p>
  
  <p>On click on Start, Completed and Delivered I need to update a column (Status) in mysql table.<br>
  If it was just a table row we could have done it like this:</p>
  
  <pre><code>tr.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View pos) {
                  // TODO Auto-generated method stub
  
                  System.out.println("Row clicked: " + pos.getId());
              }
          });
  </code></pre>
  
  <p>Below is my code for table layout:</p>
  
  <pre><code>/*******getting values from mysql db  and assigning it to teach row***********/
  try{
              allarray = new JSONArray(result);
              System.out.println("array is " +allarray.length());
              JSONObject json_data=null;
                  for(int j=0;j&lt;allarray.length();j++){
                  json_data = allarray.getJSONObject(j);
                  json_data.getString("PreparationLot");
                  json_data.getString("Prep_MenuItem");
                  json_data.getString("Prep_Quantity");
                  json_data.getString("Prep_Order_Number");
                  json_data.getString("Prep_Notes");
  
                  TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1);
  
                  TableRow tr = new TableRow(DashBoard.this);
                  if(count%2!=0) {
                      tr.setBackgroundColor(Color.rgb(222, 219, 219));
                  }else{
                      tr.setBackgroundColor(Color.rgb(255, 255, 255));
                  }
                  tr.setId(20);
                  tr.setLayoutParams(new LayoutParams());
  
                  TextView lotno = new TextView(DashBoard.this);
                  lotno.setId(200+count);// define id that must be unique
                  lotno.setText(""+json_data.getString("PreparationLot")); // set the text for the header 
                  lotno.setTextColor(Color.BLACK); // set the color
                  lotno.setPadding(10, 10, 0, 10); // set the padding (if required)
                  lotno.setTextSize(18);
                  tr.addView(lotno);
  
                  TextView itemname = new TextView(DashBoard.this);
                  itemname.setId(200+count);// define id that must be unique
                  itemname.setText(""+json_data.getString("Prep_MenuItem")); // set the text for the header 
                  itemname.setTextColor(Color.BLACK); // set the color
                  itemname.setPadding(30, 10, 0, 10); // set the padding (if required)
                  itemname.setTextSize(18);
                  tr.addView(itemname);
  
                  TextView qty = new TextView(DashBoard.this);
                  qty.setId(200+count);// define id that must be unique
                  qty.setText(""+json_data.getString("Prep_Quantity")); // set the text for the header 
                  qty.setTextColor(Color.BLACK); // set the color
                  qty.setPadding(70, 10, 0, 10); // set the padding (if required)
                  qty.setTextSize(18);
                  tr.addView(qty);
  
                  TextView order = new TextView(DashBoard.this);
                  order.setId(200+count);// define id that must be unique
                  order.setText(""+json_data.getString("Prep_Order_Number")); // set the text for the header 
                  order.setTextColor(Color.BLACK); // set the color
                  order.setPadding(60, 10, 0, 10); // set the padding (if required)
                  order.setTextSize(18);
                  tr.addView(order);
  
                  TextView notes = new TextView(DashBoard.this);
                  notes.setId(200+count);// define id that must be unique
                  notes.setText(""+json_data.getString("Prep_Notes")); // set the text for the header 
                  notes.setTextColor(Color.BLACK); // set the color
                  notes.setPadding(60, 10, 0, 10); // set the padding (if required)
                  notes.setTextSize(18);
                  tr.addView(notes);
  
                  Button start = new Button(DashBoard.this);
                  start.setText("Start");
                  start.setMaxWidth(10);
                  tr.addView(start); 
  
                  Button complete = new Button(DashBoard.this);
                  complete.setText("Complete");
                  complete.setMaxWidth(10);
                  tr.addView(complete); 
  
                  Button delivered = new Button(DashBoard.this);
                  delivered.setText("Delivered");
                  delivered.setMaxWidth(10);
                  tr.addView(delivered); 
  
                  tl.addView(tr, new TableLayout.LayoutParams(
                          LayoutParams.FILL_PARENT,
                          LayoutParams.WRAP_CONTENT));
  
             count++;
             tr.setClickable(true);
             tr.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View pos) {
                  // TODO Auto-generated method stub
              //  Toast.makeText(DashBoard.this, v.getId(), 1000).show();
                  System.out.println("Row clicked: " + pos.getId());
              }
          });
                  }
              }
              catch(JSONException e1){
                      Toast.makeText(getBaseContext(), "No data Found" ,Toast.LENGTH_LONG).show();
              } 
  </code></pre>
  
  <p><strong>Problem:</strong> <em>if I click on Start, Completed or Delivered I need to update that row's status. How to do it?</em></p>