title: Android - ListView with 2 different Colors
body: <p>I have got a ListView and I want to change the Backgroundcolor of it. It should go like this. 1.Item = grey; 2. Item; white; 3. Item = grey; 4. Item = white etc. So it should have 2 backgroundcolors. I am trying to archieve that for almost 2 hours. I am getting confused. I cant get up with a Solution. I hope someone of you could help me. </p>
  
  <p>I tried it with:</p>
  
  <pre><code>    for(int counter = 0; counter &lt; itemList.size(); counter++){
              if( adapter.getItem(position) %2 == 1 ){
                 Layout.setBackgroundColor(Color.GREY)
                      };
            else{
              Layout.setBackgroundColor(Color.WHITE);
                }
  </code></pre>
  
  <p>So here is my hole code. I hope someone of you can tell me:</p>
  
  <p><strong>MainActivity</strong></p>
  
  <pre><code>public class MainActivity extends Activity implements OnItemClickListener {
  
      ListView lview3;
      ListViewCustomAdapter adapter;
      private ArrayList&lt;Object&gt; itemList;
      private ItemBean bean;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          prepareArrayLits();
          lview3 = (ListView) findViewById(R.id.listView1);
          adapter = new ListViewCustomAdapter(this, itemList);
          lview3.setAdapter(adapter);
  
  
  
  
          lview3.setOnItemClickListener(this);
      }
  
      public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int position, long id) {
          // TODO Auto-generated method stub
           RelativeLayout Layout = (RelativeLayout) findViewById(R.id.relativeLayout1);
          ItemBean bean = (ItemBean) adapter.getItem(position);
           for(int counter = 0; counter &lt; itemList.size(); counter++){
               adapter.getItem(position);
              Layout.setBackgroundColor(Color.CYAN);}
  
          Toast.makeText(this, "Title =&gt; "+bean.getTitle()+" \n Description =&gt; "+bean.getDescription(), Toast.LENGTH_SHORT).show();
      }
  
      /* Method used to prepare the ArrayList,
       * Same way, you can also do looping and adding object into the ArrayList.
       */
      public void prepareArrayLits()
      {
          itemList = new ArrayList&lt;Object&gt;();
  
          AddObjectToList(R.drawable.ic_add, "add", "Add desc", "2");
          AddObjectToList(R.drawable.ic_delete, "Delete", "Delete desc", "2");
          AddObjectToList(R.drawable.ic_down, "Down", "Down desc", "2");
          AddObjectToList(R.drawable.ic_info, "Information", "Information desc", "2");
          AddObjectToList(R.drawable.ic_help, "Help", "Help desc", "2");
          AddObjectToList(R.drawable.ic_download, "Download", "Download desc", "2");
          AddObjectToList(R.drawable.ic_mail, "Mail", "Mail desc", "2");
          AddObjectToList(R.drawable.ic_search, "Search", "Search desc", "2");
          AddObjectToList(R.drawable.ic_settings, "Settings", "Settings desc", "2");
  
      }
  
      // Add one item into the Array List
      public void AddObjectToList(int image, String title, String desc, String duration)
      {
  
          bean = new ItemBean();
          bean.setduration(duration);
          bean.setDescription(desc);
          bean.setImage(image);
          bean.setTitle(title);
          itemList.add(bean);
      }
  
  
  
  }
  </code></pre>
  
  <p><strong>ItemBean</strong></p>
  
  <pre><code>public class ItemBean 
  {
      String title;
      String description;
      int image;
      String duration;
  
      public String getTitle() {
          return title;
      }
      public String getDuration() {
          return duration;
      }
  
      public void setTitle(String title) {
          this.title = title;
      }
  
      public String getDescription() {
          return description;
      }
  
      public void setDescription(String description) {
          this.description = description;
      }
  
      public int getImage() {
          return image;
      }
  
      public void setImage(int image) {
          this.image = image;
      }   
  
      public void setduration(String duration) {
          this.duration = duration;
      }   
  }
  </code></pre>
  
  <p><strong>ListViewCustomAdapter</strong></p>
  
  <pre><code>public class ListViewCustomAdapter extends BaseAdapter{
  
      ArrayList&lt;Object&gt; itemList;
  
      public Activity context;
      public LayoutInflater inflater;
  
      public ListViewCustomAdapter(Activity context,ArrayList&lt;Object&gt; itemList) {
          super();
  
          this.context = context;
          this.itemList = itemList;
  
          this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      }
  
      public int getCount() {
          // TODO Auto-generated method stub
          return itemList.size();
      }
  
      public Object getItem(int position) {
          // TODO Auto-generated method stub
          return itemList.get(position);
      }
  
      public long getItemId(int position) {
          // TODO Auto-generated method stub
          return 0;
      }
  
      public static class ViewHolder
      {
          ImageView imgViewLogo;
          TextView txtViewTitle;
          TextView txtViewDescription;
          TextView duration;
      }
  
      public View getView(int position, View convertView, ViewGroup parent) {
          // TODO Auto-generated method stub
  
          ViewHolder holder;
          if(convertView==null)
          {
              holder = new ViewHolder();
              convertView = inflater.inflate(R.layout.items, null);
  
              holder.imgViewLogo = (ImageView) convertView.findViewById(R.id.imgViewLogo);
              holder.txtViewTitle = (TextView) convertView.findViewById(R.id.txtViewTitle);
              holder.txtViewDescription = (TextView) convertView.findViewById(R.id.txtViewDescription);
              holder.duration = (TextView) convertView.findViewById(R.id.duration);
  
              convertView.setTag(holder);
          }
          else
              holder=(ViewHolder)convertView.getTag();
  
          ItemBean bean = (ItemBean) itemList.get(position);
  
          holder.imgViewLogo.setImageResource(bean.getImage());
          holder.txtViewTitle.setText(bean.getTitle());
          holder.txtViewDescription.setText(bean.getDescription());
          holder.duration.setText(bean.getDuration());
  
  
  
          return convertView;
      }
  
  }
  </code></pre>
  
  <p><strong>XML Layout:</strong>
  *<em>items</em>*</p>
  
  <pre><code>&lt;RelativeLayout     android:id="@+id/relativeLayout1"   android:layout_width="fill_parent"  android:layout_height="wrap_content"    android:background="@drawable/list_selector"    xmlns:android="http://schemas.android.com/apk/res/android"  android:padding="5dip"&gt;
  
      &lt;ImageView
          android:layout_width="50dip"
          android:layout_height="50dip"
          android:padding="3dip"  
          android:id="@+id/imgViewLogo"
          android:src="@drawable/icon"
          android:layout_alignParentLeft="true"
          android:layout_centerInParent="true"
          android:background="@drawable/image_bg" 
          android:layout_marginRight="5dip"
          android:scaleType="center"
          &gt;
      &lt;/ImageView&gt;
  
      &lt;TextView
          android:textAppearance="?android:attr/textAppearanceLarge"
          android:layout_height="wrap_content"
          android:layout_alignTop="@+id/imgViewLogo"
          android:text="TextView"
          android:layout_width="wrap_content"
          android:id="@+id/txtViewTitle"
          android:layout_toRightOf="@+id/imgViewLogo"
          android:textColor="#040404"
          android:typeface="sans" 
          android:textSize="20dip"
          android:textStyle="bold"
          android:layout_marginRight="15dp"
          &gt;
      &lt;/TextView&gt;
  
      &lt;TextView
          android:layout_height="wrap_content"
          android:text="TextView"
          android:layout_width="wrap_content"
          android:id="@+id/txtViewDescription"
  
           android:textColor="#343434"
          android:textSize="15dip"
          android:layout_marginTop="1dip"
          android:layout_toRightOf="@+id/imgViewLogo"
          android:layout_below="@+id/txtViewTitle"
          android:layout_marginLeft="2dip"
          android:layout_marginRight="15dp"
          &gt;
      &lt;/TextView&gt;
      &lt;TextView
          android:id="@+id/duration"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentRight="true"
          android:layout_alignTop="@+id/txtViewTitle"
          android:gravity="right"
          android:layout_marginRight="5dip"
          android:textSize="15dip"
          android:textColor="#10bcc9"
          android:textStyle="bold"/&gt;
  
       &lt;ImageView android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/arrow"
          android:layout_alignParentRight="true"
          android:layout_centerVertical="true"
  
          /&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p><strong>Layout:</strong>
  *<em>main</em>*</p>
  
  <pre><code>&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
  
  
      &gt;
  
  
      &lt;ListView 
          android:id="@+id/listView1"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:divider="#b5b5b5"
          android:dividerHeight="1dp"
          android:listSelector="@drawable/list_selector" 
          /&gt;
  
  
  
  &lt;/LinearLayout&gt;
  </code></pre>
  
  <p>Every Tip would be helpful, 
  thanks.</p>