I have a ListView and I want to change its Backgroundcolor. It should be like that. 1.Item = gray; 2. The subject; white; 3. Element = gray; 4. Item = white, etc. Therefore, it should have 2 backgrounds. I am trying to archive this for almost 2 hours. I'm embarassing. I can’t get up with a decision. I hope one of you can help me.
I tried:
for(int counter = 0; counter < itemList.size(); counter++){ if( adapter.getItem(position) %2 == 1 ){ Layout.setBackgroundColor(Color.GREY) }; else{ Layout.setBackgroundColor(Color.WHITE); }
So here is my hole code. I hope one of you tells me:
Mainactivity
public class MainActivity extends Activity implements OnItemClickListener { ListView lview3; ListViewCustomAdapter adapter; private ArrayList<Object> 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<?> 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 < itemList.size(); counter++){ adapter.getItem(position); Layout.setBackgroundColor(Color.CYAN);} Toast.makeText(this, "Title => "+bean.getTitle()+" \n Description => "+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<Object>(); 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); } }
Itembean
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; } }
ListViewCustomAdapter
public class ListViewCustomAdapter extends BaseAdapter{ ArrayList<Object> itemList; public Activity context; public LayoutInflater inflater; public ListViewCustomAdapter(Activity context,ArrayList<Object> itemList) { super(); this.context = context; this.itemList = itemList; this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public int getCount() {
XML layout: * Product *
<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"> <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" > </ImageView> <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" > </TextView> <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" > </TextView> <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"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/arrow" android:layout_alignParentRight="true" android:layout_centerVertical="true" /> </RelativeLayout>
Layout: * Basic *
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <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" /> </LinearLayout>
Each tip will be helpful, thanks.