title: Change background color of selected item on a ListView
body: <p>I want to know on how I can change the background color of the selected item on my listView. I only want to change the specific item clicked by the user, meaning if the user clicks another item it will be the one which is highlighted. Well since I want it to keep simple as possible and use the default android listview I used this code instead:</p>
  
  <pre><code>record_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView&lt;?&gt; adapterView, View view, int i, long l) {
                  try{
                      for (int ctr=0;ctr&lt;=record_items.length;ctr++){
                          if(i==ctr){
                              record_list.getChildAt(ctr).setBackgroundColor(Color.CYAN);
                          }else{
                              record_list.getChildAt(ctr).setBackgroundColor(Color.WHITE);
                          }
                      }
                  }
                  catch (Exception e){
                      e.printStackTrace();
                  }
                  Log.v("Selected item",record_list.getItemAtPosition(i));
              }
          });
  </code></pre>
  
  <p>Ok this one is working but the problem is that it's slow. Now I want to know if there's any other way around that I can do which will give the same output as I made.</p>
  
  <p>I tried using <code>record_list.getSelectedView().setBackgroundColor(Color.CYAN);</code> but it gives me a null pointer exception.</p>
  
  <p>I also tried the selector.xml but it also didn't do the trick.
  Furthermore, there is one properties here on ListView which is called listSelector. It's a drawable as said by the documentation "Drawable used to indicate the currently selected item in the list." I also believe that this should do the trick and yes it do the trick on my emulator but not on my galaxy tab. I also tried the other methods but nothing works as I wanted it to be.</p>