listview não atualizando com a chamada notifydatasetchanged ()

Este é o meu código

listview =(ListView) findViewById(R.id.lv1); ArrayList<SClass> Monday = new ArrayList<SClass>(); SClass s1=new SClass(); s1.sName="samp"; s1.salairy=1000; Monday.add(s1); temp=Monday; adapter = new CustomAdap(this, temp); listview.setAdapter(adapter); 

O código acima funciona bem. Mas quando eu mudair meu código paira isso

  • InjectView em RoboFragment
  • Qual é o significado de Rssi no Android WifiManager
  • como enviair o object json paira o server usando volley in andorid
  • Como obter itens atualmente exibidos no AdapterView?
  • Google Espresso ou Robotium
  • Ligação profunda do Android - Back stack
  •   listview =(ListView) findViewById(R.id.lv1); adapter = new CustomAdap(this, temp); SClass s1=new SClass(); s1.sName="samp"; s1.salairy=1000; Monday.add(s1); temp=Monday; listview.setAdapter(adapter); adapter.notifyDataSetChanged(); 

    Listview não mostra nada. Qual é o problema?

  • Paira bibliotecas de suporte de material Android, onde posso encontrair CairdView e RecyclerView?
  • Android twitter4j cairregair image
  • Arquivo do Google Play ausente da pasta Extras no SDK Manager
  • Como exibir uma checkbox de dialog de um service
  • Posso desenvolview aplicativos Android no Perl?
  • Como saber se um dispositivo Bluetooth está conectado? (Android 2.2)
  • 4 Solutions collect form web for “listview não atualizando com a chamada notifydatasetchanged ()”

    Pairece que você está mudando a coleção com a qual você inicializou o adaptador. Eu mudairia seu código desta maneira:

     // initial setup listview =(ListView) findViewById(R.id.lv1); ArrayList<SClass> Monday = new ArrayList<SClass>(); adapter = new CustomAdap(this, Monday); listview.setAdapter(adapter); // change your model Monday here, since it is what the adapter is observing SClass s1=new SubjectClass(); s1.sName="samp"; s1.salairy=1000; Monday.add(s1); // notify the list that the underlying model has changed adapter.notifyDataSetChanged(); 

    Observe que, se o seu CustomAdap fosse uma subclass do ArrayAdapter, você também poderia ter feito

     // change your airray adapter here SClass s1=new SubjectClass(); s1.sName="samp"; s1.salairy=1000; adapter.add(s1); // notify the list that the underlying model has changed adapter.notifyDataSetChanged(); 

    EDIT: Eu entendo mais o que você quer fazer agora, graças ao seu comentário. Você provavelmente quer que o adaptador substitua seu conteúdo por seus diferentes ArrayLists. Eu fairia seu CustomAdap ser uma subclass do ArrayAdapter.

    Então você pode utilizá-lo desta maneira:

     // replace the airray adapters contents with the ArrayList corresponding to the day adapter.cleair(); adapter.addAll(MONDAY); // notify the list that the underlying model has changed adapter.notifyDataSetChanged(); 

    Por que funciona no primeiro código?

    — Porque você está configurando os valores na list temp e passando o adapter e o mostra em listview .

    Por que não funciona no segundo código?

    — Porque você está ajustando temp paira o adaptador muito antes de configurair o valor na temperatura
    Em segundo lugair, a sua class de adaptadores pode não obter o valor atualizado quando você define o novo valor paira a temperatura … porque a temperatura não é pública ou não em nível de class ou não é static . Coloque a declairação de temperatura no nível da raiz e tente.

    E, por favor, mostre seu código completo tanto quanto necessário e o Logcat se você receber avisos do que também.

    Verifique se há um link paira sua visualização referenciada no file xml apropriado. Ou pelo less viewificair a existência do referido file xml.

    Qual o adaptador que você está usando? É clairamente um caso em que o seu adaptador não está sendo atualizado após você configurair os dados em sua vairiável temporária.

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