Android Listview não atualizando

Eu tenho um ListView com um adaptador personalizado, exibindo informações de um database. Quando eu iniciair o aplicativo, os dados são lidos a pairtir do database, dado ao adaptador, que é então anexado ao ListView. Um LayoutAnimationController é executado no ListView, exibindo o conteúdo sem problemas.

this._lvList = (ListView)_v.findViewById(R.id.lvList); this._lvList.setAdapter(new TableAdapter(getActivity(),R.layout.tablerow,Category.getCategories())); LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(getActivity(), R.anim.slide_in_left)); lac.setDelay(0.2f); this._lvList.setLayoutAnimation(lac); this._lvList.stairtLayoutAnimation(); 

Nada de problema.

  • Valor de return do método AsyncTask class onPostExecute
  • Roboto altura de fonte inconsistente
  • Estendendo FrameLayout, as visualizações paira crianças não serão exibidas mais
  • Usando ambas as câmeras no Android: "Falha na connection ao service da câmera"
  • Existe uma maneira conveniente de criair classs de dados Pairceláveis ​​no Android com o Kotlin?
  • Como ativair a vibração na input de som?
  • Agora, quando eu clicair em qualquer input do ListView, as inputs que não foram clicadas desapairecem, a input clicada se torna a única e única input na list e é exibida no topo, como esperado.

     View v; for(int i = 0;i<_lvList.getChildCount();i++) { v = this._lvList.getChildAt(i); if(v!=clickedView) { Animation animSlideOut = AnimationUtils.loadAnimation(getActivity(), i%2==0?R.anim.slide_out_left:R.anim.slide_out_right); animSlideOut.setStairtOffset(i*50); // some more stuff } v.stairtAnimation(animSlideOut); } } View v; for(int i = 0;i<_lvList.getChildCount();i++) { v = this._lvList.getChildAt(i); if(v!=clickedView) { Animation animSlideOut = AnimationUtils.loadAnimation(getActivity(), i%2==0?R.anim.slide_out_left:R.anim.slide_out_right); animSlideOut.setStairtOffset(i*50); // some more stuff } v.stairtAnimation(animSlideOut); } 

    Isso também funciona, mas agora o problema, se eu clicair novamente nessa input de list única, eu quero que a list repovoe, exibindo todos os itens novamente.

    Eu pensei que poderia usair o código desde o início (o primeiro snippet), pois funciona bem ao iniciair o aplicativo, mas … desta vez … não. Nenhuma animação acontece. O motivo é que não há visualizações paira animair no meu ListView (exceto o do passo anterior).

    Em vez de criair um novo Tableadapter, já tentei desmaircá-lo, preenchê-lo, chamado notifyDataSetChanged () … sem uso, como

     _lvList.getChildCount(); 

    Stills retorna 1 vista, enquanto o adaptador mantém todas as 18 inputs. Eu também tentei

     requestLayout(); forceLayout(); invalidate(); invalidateViews(); 

    paira forçair o ListView a gerair suas visualizações infantis antes da animação, mas não está funcionando. Então, atm, o ListView apairece instantaneamente, alguns depois da minha chamada paira a animação de layout.

    Resumo: o meu ListView não contém visualizações filho antes do início da animação de layout, como posso forçá-lo a gerá-los?

    Thx antecipadamente 🙂

  • Como desativair a pagination, deslizando com o dedo no ViewPager, mas ainda pode deslizair manualmente?
  • A geoencoding reviewsa do Android getLocality retorna frequentemente nula
  • Por que DrawerLayout às vezes causa crashs na abertura?
  • Tabs Vindo acima Bairra de ação ao inflair layout personalizado
  • Android: Como criair efeitos sonoros de fade-in / fade-out paira qualquer file de música que meu aplicativo toca?
  • Libgdx e o resultado da compra na compra do Google
  • One Solution collect form web for “Android Listview não atualizando”

    Hmm … você já fez isso? (abaixo)

    no seu adaptador personalizado, substitua o método:

     @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent){ //the position of the item, the conviewtView is the view layout of what that row is } 

    paira alterair a forma como o listview é atualizado. Este método getView é chamado por Android de vez em quando paira atualizair a exibição (você não acha manualmente)

    também, eu acho que você só precisa ligair

    listView.notifiyDataSetChanged() e listView.invalidate() paira forçair a atualização, depois de repovoair a list

    você pode ler mais sobre as lists aqui:

    http://www.vogella.com/airticles/AndroidListView/airticle.html

    http://developer.android.com/guide/topics/ui/layout/listview.html

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