View Full Version : تغییر رنگ پس زمینه آیتم اول لیست ویو
mz6488
جمعه 21 شهریور 1393, 22:29 عصر
سلام.من تو برنامه م از لیست ویو سفارشی استفادا میکنم.میخوام رنگ پس زمینه آیتم اولی رو تغییر بدم.امکانش هست؟اگه امکانش نیست پس تو ساخت هدر واسه لیست ویو راهنماییم کنید
yasinf
جمعه 21 شهریور 1393, 22:46 عصر
میشه با یک ArrayAdapter به سادگی انجام داد با متد getView
مثال :
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position == 0) {
view.setBackgroundColor(Color.BLUE);
}
return view;
}
برای افزودن هدر و فوتر هم به این لینک برید :
http://stackoverflow.com/questions/7838921/android-listview-addheaderview-nullpointerexception-for-predefined-views/7839013#7839013
(http://stackoverflow.com/questions/7838921/android-listview-addheaderview-nullpointerexception-for-predefined-views/7839013#7839013)
mz6488
جمعه 21 شهریور 1393, 23:18 عصر
من مبتدی هستم.چجوری از این کد استفاده کنم؟
saeed_g21
جمعه 21 شهریور 1393, 23:47 عصر
متد getView داری ؟
کافیست کد زیر رو به متد getView اضافه کنی همین
View view = super.getView(position, convertView, parent); if (position == 0) {
view.setBackgroundColor(Color.BLUE);
}
mz6488
شنبه 22 شهریور 1393, 11:57 صبح
متد getView داری ؟
کافیست کد زیر رو به متد getView اضافه کنی همین
View view = super.getView(position, convertView, parent); if (position == 0) {
view.setBackgroundColor(Color.BLUE);
}
میشه بیشتر توضیح بدین؟
saeed_g21
شنبه 22 شهریور 1393, 12:07 عصر
کدهای کلاس adapter ت رو بده
mz6488
شنبه 22 شهریور 1393, 12:47 عصر
کدهای کلاس adapter ت رو بده
package example.multicolumnlist;
import static example.multicolumnlist.Constants.FIRST_COLUMN;
import static example.multicolumnlist.Constants.SECOND_COLUMN;
import static example.multicolumnlist.Constants.THIRD_COLUMN;
import static example.multicolumnlist.Constants.FOURTH_COLUMN;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ListViewAdapter extends BaseAdapter{
public ArrayList<HashMap<String, String>> list;
Activity activity;
public ListViewAdapter(Activity activity,ArrayList<HashMap<String, String>> list){
super();
this.activity=activity;
this.list=list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
private class ViewHolder{
TextView txtFirst;
TextView txtSecond;
TextView txtThird;
TextView txtFourth;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
LayoutInflater inflater=activity.getLayoutInflater();
if(convertView == null){
convertView=inflater.inflate(R.layout.colmn_row, null);
holder=new ViewHolder();
holder.txtFirst=(TextView) convertView.findViewById(R.id.TextFirst);
holder.txtSecond=(TextView) convertView.findViewById(R.id.TextSecond);
holder.txtThird=(TextView) convertView.findViewById(R.id.TextThird);
holder.txtFourth=(TextView) convertView.findViewById(R.id.TextFourth);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
HashMap<String, String> map=list.get(position);
holder.txtFirst.setText(map.get(FIRST_COLUMN));
holder.txtSecond.setText(map.get(SECOND_COLUMN));
holder.txtThird.setText(map.get(THIRD_COLUMN));
holder.txtFourth.setText(map.get(FOURTH_COLUMN));
return convertView;
}
}
mz6488
شنبه 22 شهریور 1393, 18:10 عصر
اون کد اولی که خطا داد .از کد زیر هم استفاده کردم.رنگ سطر اول رو تغییر میده ولی رنگ دو سطر مونده به آخر رو وقتی اسکرول میکنم هم تغییر میده.
if (position == 0) {
convertView.setBackgroundColor(Color.BLUE);
#root#
شنبه 22 شهریور 1393, 18:26 عصر
اون کد اولی که خطا داد .از کد زیر هم استفاده کردم.رنگ سطر اول رو تغییر میده ولی رنگ دو سطر مونده به آخر رو وقتی اسکرول میکنم هم تغییر میده.
if (position == 0) {
convertView.setBackgroundColor(Color.BLUE);
تو قسمت دوم شرط هم باید رنگ پییشفرض رو تعیین کنید تا مشکل حل بشه :
if (position == 0) {
convertView.setBackgroundColor(Color.BLUE);
} else {
convertView.setBackgroundColor(Color.WHITE);
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.