title: Android: Selector isn't working as expected in TableRow selection
body: <p>I have a TAbleLayout in my XML with 1 row i.e. te headings row. Other all rows, I add dynamically. I want to make a row selected on clicking it &amp; on touching it. I added clickListener to each row and am able to trap click event. But when the mouse is pressed or kept pressed, I see color change, then again it comes to normal color. I want the color to stay changed until I click other row or click somewhere else to deactivate the selected row. </p>
  
  <p>My selector XML code :</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt; 
  &lt;!--  Active state --&gt;  
  &lt;item android:state_selected="true" android:state_focused="false"
        android:state_pressed="false" android:drawable="@android:color/transparent" /&gt;      
  &lt;!--  Inactive state--&gt;  
  &lt;item android:state_selected="false" android:state_focused="false"
        android:state_pressed="false" android:drawable="@android:color/transparent" /&gt; 
   &lt;!--  Pressed state --&gt; 
   &lt;item android:state_pressed="true" android:drawable="@color/yellow" /&gt;
  
  &lt;!--  Selected state (using d-pad) --&gt;  
   &lt;item android:state_focused="true" android:state_selected="true"
         android:state_pressed="false" android:drawable="@color/yellow" /&gt;
  </code></pre>
  
  <p>  </p>
  
  <p>My Java code where I generate rows dynamically :</p>
  
  <pre><code>private void createView(TableRow tr, TextView tv, String data, int rowId) {
      tv.setText(data);
  
      tv.setTextColor(Color.WHITE);
      tv.setPadding(20, 0, 0, 0);
  
      tr.setPadding(0, 1, 0, 1);
      //tr.setBackgroundColor(Color.TRANSPARENT);
      tr.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.tablerowselector));
      tr.setId(rowId);
      tr.setClickable(true);
      tr.setFocusable(true); // Added thinking that if its not focusable then it can't be selected, but makes no difference
      tr.setOnClickListener(this);
      tr.addView(tv);
  }
  </code></pre>
  
  <p>If I handle in clickListener event, and set Background color of row based on setting <code>prevRowSelected</code> and <code>currRowSelected</code> logic, that works. But how to make selector work and why it is not working ? Can't selector work the way am trying to achieve it ?</p>
  
  <p>Thanks</p>
  
  <p>Any help is appreciated.</p>