اسم های سفارشی برای آیتم های یک لیست ویوو
اگه یادتون باشه من یه لیست از آهنگ ها رو توی یه لیست ویو گذاشتم چطوری می تونم به این لیست آهنگ ها یه نام اختصاصی بدم بدون تغییر نام اصلیشون
مثلا :
عکس شماره یک
عکس شماره دو
.
.
.
for (int i = 0; i < mySongs.size(); i++) {
items[i] = mySongs.get(i).replace(".mp3", "");
}
ArrayAdapter<String> adp = new ArrayAdapter<String>(getApplicationContext(), R.layout.listactivity_item, R.id.txt, items);
lv.setAdapter(adp);
بیا به این روش عمل کن هم از حافظه ی گوشی استفاده بهینه میکنه هم راحته
اول يه فايل xml اجادکن
داخلش يه دونه text با يدونه image بذار
مثلا اسم فايل xml را میزاریم mylist
دوم يدونه کلاس ايجاد کن و داخلش متغيير هايي که ميخواهي به کنترل هاي ليست ويو نسبت بدي ايجاد کني
//مثلا structnot اسم کلاس
public class structnote {
public String name;
public String urlimg;
}
حلا بايد اين کلاس را ايجاد کني واسه کنترل ليست ويو
public class adapternote extends ArrayAdapter<structnote> {
//structnote اسم کلاسی که داخلش متغییر ایجاد کردیم
public adapternote(ArrayList<structnote> array) {
super(G.context, R.layout.mylist, array);// معرفی فایل Xml
}
private static class ViewHolder {
public TextView txtname;
public ImageView img;
public ViewHolder(View view) {
// اينجا بايد کنترل هايي که داخل فايل xml قرار دادي معرفي کني
txtname = (TextView) view.findViewById(R.id.txtname);
img = (ImageView) view.findViewById(R.id.img);
}
public void fill(ArrayAdapter<structnote> adapter, structnote item, int position) {
// اينجا بايد مقدار دهي کني به کنترل ها
txtname.setText(item.name);//name را در کلاس stract تعريف کرديم
img // تصوير باديد بودنم از کجا ميخواي بياري فعلا ولش کن
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
structnote item = getItem(position);
if (convertView == null)
{
convertView = G.inflater.inflate(R.layout.mylist, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else
{
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
حالا یه activity برای نمایش لیست ویو ایجاد کن
در فایل xml اون یه لیست ویو قرار بده
بعد به صورت زیر بهش مقدار بده
یه ArrayList از کلاس struct که نوشتی ایجاد کن به این صورت
public ArrayList<structnote> myArray = new ArrayList<structnote>();
structnote اسم کلاس struct منه لازم نیست داخلش آرایه تعریف کنی متغییر هایی متناسب با نوع داده ای که داری ایجاد کن
public ArrayAdapter adapter; تعریف یک ArrayAdapter
ایجاد کنstruct یک شی از کلاس
structnote note = new structnote();
به متغییر های آن مقدار بده مثل این
note.name = txtname.gettext.tostring
بعد بریز توی آرایه ای که تعریف کردی اول کار
myArray.add(note);
البته من یدونه ایتم داخل myArray وارد کردم با استفاده از حلقه میتونی هر چه قدر خاوستی وارد کنی
بعد واسه نمایش داخل لیست ویو از کلاس adapternote که استاد نوشتن استفاده کنی به این صورت
adapter = new adapternote(myArray);
ListView.setAdapter(adapter);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .