Androidda adapterlar statik ichki sinflar yoki statik bo'lmagan ichki sinflar bo'lishi kerak

Faoliyatdagi ListViewim byokiva ListView-ga maxsus adapter o'rnatyapman.

Mening adapterim sinf bo'lishi kerakmi:

private static class MyAdapter extends ArrayAdapter 

yoki

private class MyAdapter extends ArrayAdapter

Ishonchim komilki, adapter aktivlik ma'lumotnomasiga kiritilgan ekan, buni tasdiqlashni xohlamagan ekanman.

11
(Kelajak o'quvchilar uchun) Oxirgi savol orqaga qarab. Agar sizda statik ichki sinf bo'lsa va faoliyat/kontekstga kirish kerak bo'lsa, siz WeakReference (agar faoliyat davom etishi mumkin bo'lgan har qanday narsa bo'lsa) dan foydalaning. Sinf statik va ichki bo'lmasa, u tashqi klassga bevosita kuchli havola etadi. Bunday holatda siz hali ham adapter qanday ishlatilganligi haqida ehtiyot bo'lishingiz kerak. Statikni qo'llash bevosita qochqinlarni topishga yordam beradi, ammo kontekstni/zaif tomonni aylanib chiqishda yuklarni qo'shadi.
qo'shib qo'ydi muallif lilbyrdie, manba
Bundan tashqari, View nesnesini qabul qiluvchi adapterga kiritilgan qo'ng'iroqlarning har qandayida kontekst mavjud (View.getContext ()). Faoliyatingizning ishonchli ekanligiga ishonch hosil qilish uchun instanceof-dan foydalanishingiz mumkin.
qo'shib qo'ydi muallif lilbyrdie, manba

1 javoblar

Agar adapterdan qanday foydalanayotgan bo'lsangiz ehtiyot bo'lishingiz kerak. Adapterlar odatda ularning mazmuni (faoliyati) ning hayot aylanishiga bog'liq, shuning uchun yaxshi. Agar WeakReference faqat mantiqiy bo'lsa, foydalaning.

17
qo'shib qo'ydi
Adapterni, masalan, faoliyatingizdan uzoqroq turadigan statik sohada saqlamang.
qo'shib qo'ydi muallif Romain Guy, manba
"Adapterni qanday ishlatish kerakligini ehtiyotkorlik bilan o'rganish" mavzusiga batafsil to'xtalib o'tasizmi? Shunday qilib, ikkita qaysi biri adapter faoliyati hayot aylanishiga bog'liq ekanligi muhim emas.
qo'shib qo'ydi muallif dnkoutso, manba
@RomainGuy biz onDestroy() dagi statik adapter ob'ektini ochiq kodli null bo'lsa nima qilamiz? Bu yaxshi yondashuvmi?
qo'shib qo'ydi muallif Muhammad Babar, manba
Yo'q, chunki Destroy() men tushunganimdan kafolatli qo'ng'iroq emas.
qo'shib qo'ydi muallif lilbyrdie, manba