Ho un controllo ListView in un'attività e sto impostando un adattatore personalizzato su ListView.Gli adattatori in Android dovrebbero essere classi interne statiche o classi interne non statiche
caso la mia classe adattatore essere:
private static class MyAdapter extends ArrayAdapter
o
private class MyAdapter extends ArrayAdapter
Credo che dovrebbe fare alcuna differenza finché l'adattatore è racchiuso all'interno del riferimento attività, ma ha voluto confermare che.
(Per i futuri lettori) L'ultima domanda è al contrario. Se hai una classe interna statica e hai bisogno di accedere all'attività/contesto, dovresti usare un WeakReference (se c'è qualcosa che potrebbe sopravvivere all'attività). Se la classe non è statica e interiore, ha un implicito forte riferimento alla classe esterna. In tal caso, devi anche fare attenzione a come viene utilizzato l'adattatore. L'uso di statico può aiutare a trovare perdite implicite, ma aggiunge un sovraccarico nel passaggio attorno a un contesto/debole riferimento. – lilbyrdie
Inoltre, in qualsiasi chiamata in un adattatore che accetta un oggetto View, il contesto è disponibile (View.getContext()). Puoi usare instanceof per assicurarti che sia la tua attività. – lilbyrdie