GetView Vs. BindView in un CursorAdapter personalizzato?

Quindi, sto guardando questo video http://www.youtube.com/watch?v=N6YdwzAvwOA e Romain Guy sta mostrando come fare un codice adattatore UI più efficiente utilizzando il metodo getView() . Ciò si applica anche a CursorAdapters? Attualmente sto utilizzando bindView() e newView() per i miei personalizzati cursori. Devo utilizzare invece il getView?

  • android ha più immagini con la camera
  • Come modificare il colore del tab della barra delle azioni
  • Rapporto di consegna SmsManger di Android
  • La function OTG simultanea (USB On The Go) + la carica dipende dalla versione OS?
  • Undefined complexType 'java.lang.Object' viene utilizzato come base per l'estensione del tipo complesso
  • Riutilizzare un file di layout XML per mostrare informazioni diverse (Applicazione Android)
  • Cancellare il contenuto di listview?
  • Android: come fare un adattatore con ID stabili?
  • Elenca gli elementi con colors alternati
  • Come gli elementi GridLayout vengono dall'adattatore (elenco / image) in App Android
  • Android: using notifyDataSetChanged e getLastVisiblePosition - quando l'elenco è effettivamente aggiornato?
  • Android: ListView con il model di dati complesso
  • 3 Solutions collect form web for “GetView Vs. BindView in un CursorAdapter personalizzato?”

    CursorAdapter ha un'implementazione di getView() che delega a newView() e bindView() , in modo da attuare il model di riciclo delle righe. Di conseguenza, non è necessario fare niente di speciale con un CursorAdapter per il riciclaggio di righe se state superando newView() e bindView() .

     /** * @see android.widget.ListAdapter#getView(int, View, ViewGroup) */ public View getView(int position, View convertView, ViewGroup parent) { if (!mDataValid) { throw new IllegalStateException("this should only be called when the cursor is valid"); } if (!mCursor.moveToPosition(position)) { throw new IllegalStateException("couldn't move cursor to position " + position); } View v; if (convertView == null) { v = newView(mContext, mCursor, parent); } else { v = convertView; } bindView(v, mContext, mCursor); return v; } 

    Questo codice sorgente CursorAdapter, ovviamente cursorAdapter, funziona di più.

    L'implementazione di CursorAdapter è diversa da quella di adattatori regolari come BaseAdapter , non è necessario ignorare getView() , getCount() , getItemId() perché queste informazioni possono essere recuperate dal cursore stesso.

    Dato un Cursor , devi solo superare due methods per creare una sottoclass CursorAdapter :

    bindView() : Dato una visualizzazione, aggiornarlo per visualizzare i dati nel cursore fornito.

    newView() : Questo viene richiamato per conservare una nuova vista che entra nell'elenco.

    Il CursorAdapter si occuperà di riciclare le viste (diversamente dal metodo getView() su Adapter regolare). Non chiama newView() each volta che necessita di una nuova row. Se ha già una View (non null ), richiama direttamente il bindView() , in questo modo la visualizzazione creata viene riutilizzata. Dividendo la creazione e la popolazione di ciascuna vista in questi due methods, CursorAdapter raggiunge il riutilizzo delle visualizzazioni in cui, in adattatori regolari, entrambe queste cose vengono fatte in metodo getView() .

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.