بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در listview
سلام آقا من دو بار ویدیوی قسمت نهم ساخت listview توسط استاد رو دیدم اما واقعا گیج کنندس و من نمیفهمم چه خبره . تا این جای درسا رو ر به طورکامل میفهمیدم چه خبره و همه رو خودم میتونستم بنویسم اما الان اصلا نمیدونم چی به چیه؟؟فکر کنم استاد باید این ویدیو رو تصحیح بکنه واقعا برای من یکی که خیلی گنگه .آیا کسی از دوستان میتونه به سور خیلی ساده کار با adapter رو برای listview ها توضیح بده که همه رو توی یک کلاس بنویسیم .(چون نمیخوام الان اولشه گیج بشم) .
+2
0
ببنید کلا لیست ویو ساختار گیج کننده ای داره و چاره ای جز توضیح به همین روش نیست البته استاد خیلی خوب توضیح دادن ولی با چند بار کپی کردن دستورات و جلو رفتن در آموزش ها یواش یواش متوجه موضوع اون خواهید شد . به نظرم بهتره همین روش رو پیش بگیرید و از روش های دیگه استفاده نکنید تا گیج نشید. (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
goorgool
11 سال پیش
+4
0
دوست عزیز این سورسی که من قرار میدم ، دقیقاً همون کار سورس استاد رو میکنه :
public class AdapterBrands extends ArrayAdapter<Brands> {
public AdapterBrands(ArrayList<Brands> array)
{
super(G.context, R.layout.adapter_name, array);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// این متود سه پارامتر ورودی دارد که پوزیشن نشاندهنده ی این است که کدام عنصر را از آرایه ی ما انتخاب کرده است
// و کانورت ویو نشان دهنده ی الواری است که میخواهد به این عنصر از آرایه ی ما اختصاص دهد
// ویو گروپ هم فکر نمیکنم چیز مهمی باشه
final TextView txtName; // در اینجا اشاره گرهای مورد نیاز را تعریف میکنیم
final TextView txtFamilyName;
final ImageView img;
if (convertView == null)
{
convertView = G.inflater.inflate(R.layout.adapter_name, parent, false);
txtName = (TextView) convertView.findViewById(R.id.txtName);
txtFamilyName = (TextView) convertView.findViewById(R.id.txtFamilyName);
img = (ImageView) convertView.findViewById(R.id.img);
// در اینجا میگیم اگر الوار مورد نیاز ساخته نشده بود از روی لایه ی موردنظر ما یکی بساز و بعد عناصر درون این لایه را به
// اشاره گرهایمان میدهیم
}
else {
txtBrandName = (TextView) convertView.findViewById(R.id.txtName);
txtBrandDescription = (TextView) convertView.findViewById(R.id.txtFamilyName);
imgBrandImage = (ImageView) convertView.findViewById(R.id.img);
// در اینجا میگوییم اگر قبلاً به تعداد لازم الوار از روی لایه ی موردنظر ما ساخته شده بود و یکی از همان الوارها را تحویل میدهی مشکلی نیست و
// الوار را تحویل میگیریم ولی چون این الوار قبلاً ساخته شده و در نتیجه عناصر درونش توسط یکی دیگر از عناصر آرایه ی ما مقداردهی شده پس
// دوباره میگوییم اشاره گرهایمان به عناصر درون این الوار اشاره کنند تا بتوانیم آنها را با مقادیر عنصر فعلی از آرایه مان پر کنیم
}
txtBrandName.setText(getItem(position).Name);
// پس در این مرحله ما دارای یک الوار هستیم که اشاره گرهایی که در همین متود تعریف کردیم به عتاصر داخل ابن الوار اشاره میکنند، پس با تغییر
// مقادیر اشاره گرهایمان، مقادیر عناصر این الوار نیز تغییر میکند
return convertView;
// و در نهایت الواری که دریافت کردیم را با مقادیر عنصر فعلی از آرایه پر کردیم و به عنوان خروجی برمیگردانیم
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .