ایجاد یک Adapter دیگر! (این سورس رو ببینید) جان من یه نفر جواب بده
سلام خسته نباشید
من میخوام برای لیست ویو دومم تو پروژه، یه Adapter جدید تعریف کنم. از رو Adapter قبلی که کپی میکنم، هرچی برای لیست ویو اول نوشتم واسه لیست ویو دوم هم اجرا میشه مثلا اگه رویداد کلیک واسه لیست ویو اول نوشته باشم، اون رویداد واسه لیست ویو دوم هم اجرا میشه در صورتی که من چیز دیگه واسه لیست ویو دوم نوشتم. این سورس کد Adapter قبلی هستش. خواستم بدونم دقیقا باید کجاها رو تغییر بدم؟ توی خط سوم که اسم فایل xml رو باید معرفی کنم، بجای adapter_list هر فایل xml دیگه ای که میسازم و بهش معرفی میکنم بازم داده ها رو از همون xml قبلیه میخونه یعنی adapter_list
public class AdapterNote extends ArrayAdapter {
public AdapterNote(ArrayList array) {
super(G.context, R.layout.adapter_list, array);
}
private static class ViewHolder {
public ViewGroup layoutlistroot;
public TextView txtpersonname;
public TextView txtpersonfamily;
public TextView txtpersonid;
public ViewHolder(View view) {
layoutlistroot = (ViewGroup) view.findViewById(R.id.layoutlistroot);
txtpersonname = (TextView) view.findViewById(R.id.txtpersonname);
txtpersonfamily = (TextView) view.findViewById(R.id.txtpersonfamily);
txtpersonid = (TextView) view.findViewById(R.id.txtpersonid);
}
public void fill(final ArrayAdapter adapter, final StructNote item, final int position) {
txtpersonname.setText(item.name);
txtpersonfamily.setText(item.family);
txtpersonid.setText(item.id);
}
}
@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.adapter_list, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
برای جواب درست این اطلاعات رو باید میذاشتی: آداپتر اول - آداپتر دوم - کد فراخوانی دو آداپتر
ولی احتمال قوی مشکل شما قبل از بخش adaptere نه داخل آداپتر
احتمال 80% شما هنوز دارید آداپتر دوم رو از arrayAdapter اول پر میکنید
این بخش از کدتون که دارید adapter رو مقدار دهی میکنید رو پیدا کنید:
adapter = new AdapterNote(G.structArray);
و به جای adapterNote اسم آداپتر جدید رو بذارید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .