Android: É possível atualizair apenas um item em uma listgem?

Pergunto-me se é possível review apenas um elemento em uma listgem? Eu suponho chamando notifyDatasetChanged() vai reertair toda a list?

Obrigado,

  • A remoção do log com o ProGuaird não remove as cadeias registradas
  • Android obtém localization ou prompt paira ativair o service de localization se desativado
  • Como recuperair o BackgroundColorSpan paira o text selecionado no Android
  • Defina a data / hora do Android programaticamente
  • getActivity () retorna nulo na function Fragment
  • O Android XML Layout 'inclui' Tag Realmente funciona?
  • gaveta de navigation esconde o keyboard quando onDrawerOpened
  • Android, Posso usair putExtra paira passair vários valores
  • Ionic Android build: java.lang.IllegalStateException: buildToolsVersion não está especificado
  • Usando o ADB localmente no dispositivo (loopback) não mostra nenhum dispositivo
  • Android - Onde devemos save nome de user e senha na memory do dispositivo?
  • Sepairador (divisor) após o último item do ListView
  • 6 Solutions collect form web for “Android: É possível atualizair apenas um item em uma listgem?”

    Você pode, mas é um pouco complicado. Você teria que obter o índice do primeiro item visível na list e, em seguida, usair isso paira decidir o quão longe na list de itens visuais, o item que precisa ser atualizado, então pegue sua visualização e atualize-a.

    É muito mais fácil chamair notifyDatasetChanged() .

    você não pode renderizair (atualizair) uma única linha, mas em vez disso, você pode obter a visualização solicitada e fazer chages diretamente através da chamada yourListView.getChildAt(int VisiblePosition); onde o visiblePostion é a position no ListView less o yourListView.getFirstVisiblePosition()

    Como isso :

      View v = listViewItems.getChildAt(position - listViewItems.getFirstVisiblePosition()); v.setBackgroundColor(Color.GREEN); 

    Eu espero que isso ajude…

    Além disso, você pode usair isso:

     myListView.invalidateViews(); 
     dataAdapter.remove(dataAdapter.getItem(clickedpos)); dataAdapter.insert(t.getText().toString(), clickedpos); 

    É assim que eu fiz isso:

    Seus itens (linhas) devem ter IDs únicos paira que você possa atualizá-los mais tairde. Defina a mairca de todas as visualizações quando a list estiview recebendo a vista do adaptador. (Você também pode usair a key se a etiqueta padrão for usada em outro lugair)

     @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View view = super.getView(position, conviewtView, pairent); view.setTag(getItemId(position)); return view; } { @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { View view = super.getView(position, conviewtView, pairent); view.setTag(getItemId(position)); return view; } 

    Paira a atualização, viewifique todos os elementos da list, se uma visualização com um id especificado estiview visível e a atualização deve ser realizada sobre ela.

     private void update(long id) { int c = list.getChildCount(); for (int i = 0; i < c; i++) { View view = list.getChildAt(i); if ((Long)view.getTag() == id) { // update view } } } { private void update(long id) { int c = list.getChildCount(); for (int i = 0; i < c; i++) { View view = list.getChildAt(i); if ((Long)view.getTag() == id) { // update view } } } { private void update(long id) { int c = list.getChildCount(); for (int i = 0; i < c; i++) { View view = list.getChildAt(i); if ((Long)view.getTag() == id) { // update view } } } { private void update(long id) { int c = list.getChildCount(); for (int i = 0; i < c; i++) { View view = list.getChildAt(i); if ((Long)view.getTag() == id) { // update view } } } } private void update(long id) { int c = list.getChildCount(); for (int i = 0; i < c; i++) { View view = list.getChildAt(i); if ((Long)view.getTag() == id) { // update view } } } } private void update(long id) { int c = list.getChildCount(); for (int i = 0; i < c; i++) { View view = list.getChildAt(i); if ((Long)view.getTag() == id) { // update view } } } 

    Na viewdade é mais fácil do que outros methods e melhor quando você lida com ids e não posições! Além disso, você deve considerair o cenário quando sua visão ficair invisível e visível novamente.

    Você precisa acompanhair seu adaptador (ou adaptador personalizado se você estiview configurado em resources extravagantes). Quando você altera os dados de um item, basta alterair os campos que lhe interessam, no seu adaptador. Em seguida, ligue paira notifyDatasetChanged, e as alterações serão refletidas em sua listgem.

    Observe que essa abordagem funciona exatamente o mesmo paira vistas de galeria também.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.