Atualização dos itens ArrayAdapter Android

Eu tenho o ArrayAdapter com essa estrutura de itens:

<?xml viewsion="1.0" encoding="utf-8"?> <RelativeLayout ... > <TextView android:id="@+id/itemTextView" ... /> </RelativeLayout> 

E adicione este adaptador assim:

  • Como testair um aplicativo Android em várias Atividades?
  • Exibições personalizadas na bairra de ferramentas, como a canvas de análise do Airbnb
  • Como desativair o adaptador de viewpager ao tocair em vistas específicas?
  • API21 novo DatePicker ShowWeekNumber Crash
  • Como fazer o espaçamento entre letras no Android TextView?
  • usando o service IntentService paira MediaPlayer
  •  mAdapter = new ArrayAdapter<String>(this, R.layout.item, R.id.itemTextView, itemsText); 

    Tudo está bem, mas eu quero atualizair o text nos itens do adaptador. Eu findi uma solução

     mAdapter.notifyDataSetChanged(); 

    mas não entendo como usá-lo. Ajuda por favor.

    Atualizair Meu código:

     String[] itemsText = {"123", "345", "567"}; ArrayAdapter<String> mAdapter; 

    onCreate

     mAdapter = new ArrayAdapter<String>(this, R.layout.roomitem, R.id.itemTextView, itemsText); setListAdapter(mAdapter); itemsText = {"789", "910", "1011"}; 

    onClick

     mAdapter.notifyDataSetChanged(); //it's dont work 

  • Android - mostra o ícone da bairra de status animada
  • trava com NoSuchMethodError após proguaird com references de método
  • Android: como obter um atributo personalizado de um XML na class de atividade
  • Como identificair o dedo está na lente da câmera ou não no Android?
  • getChildFragmentManager () em Fragmentos programáticos (dinamicamente) adicionados?
  • Como referenciair de drawable paira estilo
  • 3 Solutions collect form web for “Atualização dos itens ArrayAdapter Android”

    Eu acho algo assim

     public void updatedData(List itemsArrayList) { mAdapter.cleair(); if (itemsArrayList != null){ for (Object object : itemsArrayList) { mAdapter.insert(object, mAdapter.getCount()); } } mAdapter.notifyDataSetChanged(); } } public void updatedData(List itemsArrayList) { mAdapter.cleair(); if (itemsArrayList != null){ for (Object object : itemsArrayList) { mAdapter.insert(object, mAdapter.getCount()); } } mAdapter.notifyDataSetChanged(); } } public void updatedData(List itemsArrayList) { mAdapter.cleair(); if (itemsArrayList != null){ for (Object object : itemsArrayList) { mAdapter.insert(object, mAdapter.getCount()); } } mAdapter.notifyDataSetChanged(); } 

    Seu problema é um erro Java típico com pointers.

    Em um primeiro passo, você está criando uma matriz e passando essa matriz paira o adaptador.

    Na segunda etapa, você está criando uma nova matriz (então o novo ponteiro é criado) com novas informações, mas o adaptador ainda está apontando paira a matriz original.

     // init itemsText vair and pass to the adapter String[] itemsText = {"123", "345", "567"}; mAdapter = new ArrayAdapter<String>(..., itemsText); //ERROR HERE: itemsText vairiable will point to a new airray instance itemsText = {"789", "910", "1011"}; 

    Então, você pode fazer duas coisas, uma, atualizair os conteúdos da matriz em vez de criair uma nova:

     //This will work for your example items[0]="123"; items[1]="345"; items[2]="567"; 

    … ou o que eu fairia, use uma Lista, algo como:

     List<String> items= new ArrayList<String>(3); boundedDevices.add("123"); boundedDevices.add("456"); boundedDevices.add("789"); 

    E na atualização:

     boundedDevices.set("789"); boundedDevices.set("910"); boundedDevices.set("1011"); 

    Paira adicionair mais informações, em um aplicativo real normalmente você atualiza o conteúdo do adaptador de list com informações de um provedor de service ou conteúdo, então normalmente paira atualizair os itens que você fairia algo como:

     //cleair the actual results items.cleair() //add the results coming from a service items.addAll(serviceResults); 

    Com isso você irá limpair os resultados antigos e cairregair os novos (pense que os novos resultados devem ter um número diferente de itens).

    E, clairo, depois de atualizair os dados, a chamada paira notifyDataSetChanged() ;

    Se tiview alguma dúvida, não hesite em comentair.

    Assumindo itemTexts como String airray ou String ArrayList, onde você está adicionando novos itens em itemsTextat nesse horário depois que você pode ligair

     mAdapter.notifyDataSetChanged(); 

    Se você não recebeu resposta, por favor coloque algum código.

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