تغییر رنگ پس زمینه (Background) هر item از ListView ، با روش setBackgroundColor ، در برنامه نویسی اندروید
فرض کنید که قصد داریم رنگ پس زمینه (Background) هر item از ListView را تغییر بدهیم (البته این کار را با ویرایش فایل xml مربوط به ساختار گرافیکی هر item از ListView نیز می توان انجام داد، ولی ما قصد داریم که با کدهای java این کار را انجام بدهیم، زیرا شاید مثلا بخواهیم که رنگ پس زمینه هر item از ListView با سایر item ها متفاوت باشد). برای این منظور، باید به سراغ کدهای adapter به کار رفته برای ساخت item های ListView برویم. مثلا فرض کنید که adapter زیر را برای یک ListView به کار برده ایم :
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
// some codes
return row;
}
}
به خط زیر از کدها توجه کنید :
ما View مربوط به هر item (هر ردیف - هر row) از ListView را در متغیری به نام row داریم، بنابراین برای تغییر رنگ پس زمینه آن، تنها کافی است که کد زیر را بعد از آن بنویسیم (رنگ قرمز را انتخاب کرده ایم) :
بنابراین کدها به صورت زیر خواهند بود :
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
row.setBackgroundColor(Color.RED);
// some codes
return row;
}
}
اگر بخواهیم که یک کد رنگ دلخواه را برای تعیین رنگ به کار ببریم، باید کد رابه صورت زیر بنویسیم (مثلا برای کد رنگ #00ff00) :