Come aggiornare o aggiornare un elemento specifico in RecyclerView

Sto provando a aggiornare l'articolo specifico in RecyclerView .

Storia: each volta che l'utente fa clic su elemento, visualizza AlertDialog . L'utente può digitare un text facendo clic sul button OK. Voglio mostrare questo text in questa voce e mostrare invisibile ImageView – dichiarato in XML e adattatore ViewHolder

  • Testo e image di ArrayAdapter
  • Google gioco, pubblicazione aggiornamento app, emissione con 'piattaforms native'
  • android studio: come utilizzare il model live fbc
  • MyGestureDetector estende SimpleOnGestureListener
  • Perché BUILD FAILED?
  • Perché gerarchyviewer non funziona per Samsung Galaxy TAB 7.0?
  • Ho usato questa function nel AlertDialog Positivo AlertDialog per aggiornare l'elemento:

     private void updateListItem(int position) { View view = layoutManager.findViewByPosition(position); ImageView medicineSelected = (ImageView) view.findViewById(R.id.medicine_selected); medicineSelected.setVisibility(View.VISIBLE); TextView orderQuantity = (TextView) view.findViewById(R.id.order_quantity); orderQuantity.setVisibility(View.VISIBLE); orderQuantity.setText(quantity + " packet added!"); medicinesArrayAdapter.notifyItemChanged(position); } 

    Ma questo codice non solo cambia l'itemView in posizione passata, ma anche cambia alcuni degli altri itemView!

    Come devo modificare correttamente itemView correttamente facendo clic su di esso?

  • Quali dispositivi android supportno l'accessorio ADK / open
  • Android: Come posso get l'attuale attività in primo piano (da un servizio)?
  • Utilizzo di HttpGet che restituisce il codice HTML completo
  • È ansible impostare le intestazioni HTTP personalizzate nel WebView
  • Google svolge il monitoraggio della campagna senza l'implementazione di Google Analytics in android
  • Come utilizzare intenti da un servizio o da un ricevitore broadcast?
  • 4 Solutions collect form web for “Come aggiornare o aggiornare un elemento specifico in RecyclerView”

    È ansible utilizzare il notifyItemChanged(int position) dalla class RecyclerView.Adapter. Dalla documentazione:

    Informare eventuali osservatori registrati che l'elemento in posizione è cambiato. Equivalente alla chiamata notifyItemChanged (posizione, null) ;.

    Questo è un evento di modifica degli elementi, non un evento di modifica strutturale. Indica che qualsiasi riflessione dei dati in posizione è obsoleta e dovrebbe essere aggiornata. L'elemento in posizione conserva la stessa identity framework;.

    Mentre hai già la posizione, dovrebbe funzionare per te.

    Penso di avere un'idea su come affrontare questo problema. L'aggiornamento è uguale a eliminare e sostituire nella posizione esatta. Quindi, prima di rimuovere l'elemento da quella posizione utilizzando il codice qui sotto:

     public void removeItem(int position){ mData.remove(position); notifyItemRemoved(position); notifyItemRangeChanged(position, mData.size()); } 

    e poi aggiungo l'elemento a quella particolare posizione come mostrato di seguito:

     public void addItem(int position, Landscape landscape){ mData.add(position, landscape); notifyItemInserted(position); notifyItemRangeChanged(position, mData.size()); } 

    Sto cercando di attuare questo adesso. Vorrei dare un feedback quando sono passato!

    Ho dovuto risolvere questo problema catturando la posizione dell'elemento che whereva essere modificato e poi nella chiamata dell'adattatore

     public void refreshBlockOverlay(int position) { notifyItemChanged(position); } 

    , questo richiamerà onBindViewHolder (supporto ViewHolder, int posizione) per questo elemento specifico in questa posizione specifica.

    addItemsToList(items) RecyclerView, è necessario disporre di un ArrayList e anche di un metodo addItemsToList(items) per aggiungere elementi di elenco addItemsToList(items) . Quindi è ansible aggiungere elementi di elenchi tramite l' adapter.addItemsToList(items) di chiamata in adapter.addItemsToList(items) dinamico. Dopo che tutti i tuoi elementi di elenco sono stati aggiunti adapter.notifyDataSetChanged() allora è ansible call adapter.notifyDataSetChanged() per visualizzare l'elenco.

    È ansible utilizzare il notifyDataSetChanged nella scheda per il RecyclerView

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