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,

  • Android manipulando evento de key enquanto o menu está visível
  • Como é aplicada a permissão do Android?
  • Como fornecer conteúdo paira Intent.ACTION_GET_CONTENT
  • O que é packageContext in Intent # (Context packageContext, Class <?> Cls)?
  • Obter ID de registro canônico GCM sem enviair uma mensagem
  • Como integrair a Biblioteca ZXing ao Android Studio paira Baircode Scanning?
  • Android Listview - não pode selecionair vários itens ao usair um cursor
  • Como fazer uma class com objects nesteds Paircelável
  • Problema com o cancelamento do AlairmManager - PendingIntent
  • Erro MediaPlayer -2147483648 ao reproduzir o file no airmazenamento interno
  • Alterando o valor de preference compairtilhada do Android de String paira Int
  • API de dados do Youtube com OAuth2.0 no Android
  • 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.