آیا putextra در یک adapter و extras کردن اون در یک adapter دیگر امکان داره؟
سلام دوستان.
آیا امکان داره که یه مقدار رو از یه adapter گرفت یعنی putextra کرد و توی یک adapter دیگه extrasش کرد؟
اگه میشه، لطف کنید بگید چجوری
فرض کن 2 تا لیست دارید: مشتریان و کالاها
میخوای از لیست اول مشتری رو انتخاب کنی بری لیست دوم رو نشون بدی و بعد کالای انتخاب شده و مشتری رو به عنوان یه رکورد تو دیتابیس ذخیره کنی
اگه کار با همین ترتیبه همواره فقط با 1 مشتری سر و کار داری، پس کافیه موقع انتخاب مشتری آیدی اونو تو مثلا G.currentCustomerId نگه داری و ازش موقع ثبت تو دیتا بیس استفاده کنی. دیگه نیازی به putextraو امثالهم هم نیست. موقع خروج هم حتما مقدار فیلد رو 0 کن.
به نظرم یکم دقیقتر بگی میخوای چکار کنی شاید کار بهتری بشه انجام داد. ولی به طور معمول میتونید اون داده رو puextra کنید به اکتیویتی دومی که قراره آداپتر دوم از اونجا مقدار دهی بشه و بعد از اونجا به آداپتر بفرستیدش.
برای این کار باید constructor آرایه ات رو تغییر بدی :
از این شکل:
public class AdapterListPayamak extends ArrayAdapter<Struct> {
public AdapterListPayamak(ArrayList<Struct> array) {
super(G.context, R.layout.adapter_list_payamak, array);
}
private static class ViewHolder {
...
باید تغییرش بدی به این شکل:
public class AdapterListPayamak extends ArrayAdapter<Struct> {
public AdapterListPayamak(ArrayList<Struct> array , String str) {
super(G.context, R.layout.adapter_list_payamak, array);
}
private static class ViewHolder {
...
و بعد موقع تعریف adapter ت از توی اون اکتیویتی دوم، اون مقدار رو (مثلا myText) بفرستی به آداپتر:
adapter = new AdapterListPayamak(G.structArray , myText);
راه دوم : اینکه خیلی ساده تر ، اون مقدار رو به عنوان یه متغییر public static معرفی کنی و از توی آداپترت به اون متغییر استاتیک رفرنس بدی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .