title: Changing background color of list items in custom list view
body: <p>I used the following code create a custom listview ....But the problem with this code it it is selecting only one item..but highlighting many items...i mean ..for example..if i have 8 items in the list..And i can see only 3 items(rest i have to scroll to see)..if i click the first item...it gets highlighted along with the fourth and the 7th item... </p>
  
  <pre><code>public class MainMenu extends Activity {
      ListView lmenu;
      View v1;
      String s;
      Class&lt;?&gt; ourclass;
      View layout, row;
      static int trantype;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.menulist);
  
          Menu Menu_data[] = new Menu[] { new Menu("1.White"),
                  new Menu("2.Blue"), new Menu("3.Purple"), new Menu("4.Red"),
                  new Menu("5.Yellow"), new Menu("6.Black"), new Menu("6.Black"),
                  new Menu("6.Black"), new Menu("6.Black"), new Menu("6.Black"),
                  new Menu("6.Black"), new Menu("6.Black") };
  
          MenuAdapter adapter = new MenuAdapter(this, R.layout.menutext,
                  Menu_data);
          lmenu = (ListView) findViewById(R.id.mainmenu);
  
          lmenu.setAdapter(adapter);
  
          lmenu.setOnItemClickListener(new OnItemClickListener() {
  
              public void onItemClick(AdapterView&lt;?&gt; ada, View v, int position,
                      long id) {
                  // TODO Auto-generated method stub
  
                  /*
                   * v.setBackgroundColor(Color.parseColor("#FCD5B5")); if (!(v1
                   * == null) &amp;&amp; v1 != v)
                   * v1.setBackgroundColor(Color.parseColor("#EEEEEE")); v1 = v;
                   */
                  Intent swipeit = new Intent(getBaseContext(), Swipeit.class);
                  trantype = position + 1;
                  startActivity(swipeit);
              }
          });
  
          findViewById(R.id.BLogout).setOnClickListener(new OnClickListener() {
              public void onClick(View v) {
                  // TODO Auto-generated method stub
                  finish();
              }
          });
      }
  
      public class Menu {
          public String title;
  
          public Menu() {
              super();
          }
  
          public Menu(String title) {
              super();
              this.title = title;
          }
      }
  
      public class MenuAdapter extends ArrayAdapter&lt;Menu&gt; {
  
          Context context;
          int layoutResourceId;
          Menu data[] = null;
          LayoutInflater inflater;
          boolean[] arrBgcolor;
          private int activeHex, inactiveHex;
  
          public MenuAdapter(Context context, int layoutResourceId, Menu[] data) {
              super(context, layoutResourceId, data);
              this.layoutResourceId = layoutResourceId;
              this.context = context;
              this.data = data;
              activeHex = Color.parseColor("#FCD5B5");
              inactiveHex = Color.parseColor("#EEEEEE");
  
              inflater = (LayoutInflater) context
                      .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              arrBgcolor = new boolean[13];
          }
  
          @Override
          public View getView(final int position, final View convertView,
                  ViewGroup parent) {
              try {
                  MenuHolder holder = null;
                  row = convertView;
                  // convertView.setBackgroundColor(Color.BLACK);
                  if (row == null) {
                      LayoutInflater inflater = ((Activity) context)
                              .getLayoutInflater();
                      row = inflater.inflate(layoutResourceId, parent, false);
                      holder = new MenuHolder();
                      holder.txtTitle = (TextView) row.findViewById(R.id.tv1);
                      row.setTag(holder);
                  } else {
                      holder = (MenuHolder) row.getTag();
                  }
  
                  Menu Menu = data[position];
                  holder.txtTitle.setText(Menu.title);
                  holder.txtTitle.setOnClickListener(new OnClickListener() {
  
                      public void onClick(View v) {
                          // TODO Auto-generated method stub
                          resetArrbg();
                          arrBgcolor[position] = true;
                          if (arrBgcolor[position]) {
                              row.setBackgroundColor(activeHex);
                          } else {
                              row.setBackgroundColor(inactiveHex);
                          }
                          notifyDataSetChanged();
                      }
                  });
              } catch (Exception e) {
                  Toast.makeText(getApplicationContext(), String.valueOf(e),
                          Toast.LENGTH_LONG).show();
              }
              return row;
          }
  
          private void resetArrbg() {
              for (int i = 0; i &lt; arrBgcolor.length; i++) {
                  arrBgcolor[i] = false;
              }
          }
  
          public class MenuHolder {
              TextView txtTitle;
          }
      }
  }
  </code></pre>
  
  <p>my xml containing list...
      
      </p>
  
  <pre><code>    &lt;include
          android:id="@+id/header"
          android:layout_alignParentTop="true"
          layout="@layout/header" /&gt;
  
      &lt;RelativeLayout
          android:id="@+id/Rlmain"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_below="@+id/header"
          android:orientation="vertical" &gt;
  
          &lt;TextView
              android:id="@+id/TMain"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_centerVertical="true"
              android:layout_marginBottom="8dp"
              android:layout_marginLeft="10dp"
              android:layout_marginTop="8dp"
              android:text="Main Menu"
              android:textColor="#000000"
              android:textSize="15dp" /&gt;
  
          &lt;View
              android:id="@+id/Vtop"
              android:layout_width="fill_parent"
              android:layout_height="2dp"
              android:layout_below="@+id/TMain"
              android:background="@android:color/darker_gray" /&gt;
      &lt;/RelativeLayout&gt;
  
      &lt;RelativeLayout
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_above="@+id/Vbot"
          android:layout_below="@+id/Rlmain"
          android:orientation="vertical" &gt;
  
          &lt;ListView
              android:id="@+id/mainmenu"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:background="#E0E0E0"
              android:cacheColorHint="#00000000"
              android:divider="@android:color/transparent"
              android:dividerHeight="20dp" &gt;
          &lt;/ListView&gt;
      &lt;/RelativeLayout&gt;
  
      &lt;View
          android:id="@+id/Vbot"
          android:layout_width="fill_parent"
          android:layout_height="2dp"
          android:layout_above="@+id/textView1"
          android:background="@android:color/darker_gray" /&gt;
  
      &lt;TextView
          android:id="@+id/textView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentBottom="true"
          android:layout_centerHorizontal="true"
          android:text="© India Transact Services Ltd."
          android:textColor="#000000"
          android:textSize="15dp" /&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>my xml for list....</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/LLtv"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="#EEEEEE"
      android:cacheColorHint="#00000000" &gt;
  
      &lt;TextView
          android:id="@+id/tv1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:paddingBottom="12dp"
          android:paddingTop="12dp"
          android:textColor="#000000"
          android:textSize="20dp" /&gt;
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>Can please anyone help me and tell where i am going wrong?</p>