کاستومایز کردن لیست ویو ، استفاده از دو Layout
من یک لیست ویو دارم و برای هر آیتم لیست ویو میخوام یک ویژگی True or False بزارم
و مثلا اگر true بود ، از یک layout به لیست اضافه کنه و اگر false بود layout دوم رو به لیست ویو اضافه کنه . (xml منظورمه)
یک راهنمایی می کنید لطفا؟
:: ادیت ::
میخوام در هر آیتم لیست ویو، از دو ظاهر متفاوت استفاده کنم و هر وقت که خواستم از آیتم اول و هر وقت نیاز شد از آیتم دوم اضافه کنم ،
این دو آیتم متفاوت لیست، فقط از نظر ظاهر فرق دارن و از نظر تعداد المان ها و ID هر المان و تعداد شون فرقی ندارند .
تشکر.
دستورتون رو کلاس adapter قرار بدید یکبار در متد AdapterNote و یکبار در متد getView و مقدار R.layout.adapter_notes رو به دلخواه ست کنید
public AdapterNote(ArrayList<StructNote> array) {
if(true){
super(G.context, R.layout.adapter_notes, array);
} else {
super(G.context, R.layout.adapter_2, array);
}
}
متد دوم :
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
StructNote item = getItem(position);
if (convertView == null) {
if(true){
convertView = G.inflater.inflate(R.layout.adapter_notes, parent, false);
} else {
convertView = G.inflater.inflate(R.layout.adapter_2, parent, false);
}
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
التبه بهتر هست که این کار رو نکنید و یک کلاس اداپتر جداگانه همراه با یک xml جدا گانه داشته باشید ، و روی لیست ویو خودتون ست اداپتر کنید <
این روش بالا کل لیست ویو رو تغییر میده < ولی اگر شما میخواید که آیتم های لیست ویو < یک در میان متفاوت باشند بهتره از همون اول یکسری از عناصر روی xml رو gone کنید و بعدا با شرایط خودتون VISIBLE کنید < فقط ممکنه نیاز داشته باشید از relativelayout استفاده کنید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .