Olá Werner,
-- Acredito que seja por causado contexto.
Vc tem que passar o contexto de volta pra activity no POS quando chama este metodo atualizaTela.atualizaTelaComOK ();
Sua Activity principal faz o execute da async ela continua a executar e finaliza e quando vc chama o metodo atualizaTelaComOK (); dela
acaba não encontrando o contexto da activity e da nulpointer...
Se não conseguir resolver, me da um toque q eu vejo um codigo meu aqui e te passo, pq penei pra aprender isso ai rs
Abrax
Em segunda-feira, 27 de outubro de 2014 17h01min32s UTC-2, Werner Marques escreveu:
Em segunda-feira, 27 de outubro de 2014 17h01min32s UTC-2, Werner Marques escreveu:
Boa tarde, ColegasNovamente estou aqui pedindo ajuda. Na tela de pedidos do meu app tem a EditText com a data e o botão OK para visualizar os pedidos somente desse dia escolhido pelo usuario. Nesses pedidos tem um status mostrando se ele já foi transferido para o webservice. Acontece que quando termina a execução do asynctask esse status não fica atualizado (embora o pedido tenha sido transmitido normalmente), é preciso eu apertar o botão OK novamente para a tela atualizar. Eu até tentei uma solução mostrada abaixo que gostaria de mostrar.criei essa interface
Digite o código aqui...
package br.com.lemarq.sas.sync;public interface AtualizaTelaPedido {public void atualizaTelaComOK();}essa é a minha classe asynctask até o onPostExecute
Digite o código aqui...public class SyncPed extends AsyncTask<Void, Void, Void> {private Context context;private ProgressDialog progress;private Ped ped;private List<Peditem> listaPeditem;private AtualizaTelaPedido atualizaTela;public SyncPed(Context context, AtualizaTelaPedido atualizaTela) {this.atualizaTela = atualizaTela;}public SyncPed(Context context, Ped ped, List<Peditem> listaPeditem) {this.context = context;this.ped = ped;this.listaPeditem = listaPeditem;}@Overrideprotected void onPreExecute() {super.onPreExecute();progress = ProgressDialog.show(context, "Aguarde...", "Enviando Pedido e Recebendo Confirmação", true, true);}@Overrideprotected Void doInBackground(Void... params) {EnviaPed(ped);EnviaPedItem(listaPeditem);ConfirmarRecebimento(ped);return null;}@Overrideprotected void onPostExecute(Void result) {super.onPostExecute(result);progress.dismiss();atualizaTela.atualizaTelaComOK ();}e essa e a classe activity que chama a implementação
Digite o código aqui...public class PedLista extends Activity implements AtualizaTelaPedido {o metodo sobrescrito da interface AtualizaTelaPedido, que esta dentro da activity PedLista.java
Digite o código aqui...@Overridepublic void atualizaTelaComOK() {btnOk.performClick();}a chamada a asynctask
Digite o código aqui...SyncPed taskPed = new SyncPed(ctx, ped, listaPeditem);taskPed.execute();e o erro apresentado no LogDigite o código aqui...10-25 12:44:16.689: D/Erro:(20891): Invalid index 1, size is 110-25 12:44:17.959: I/Dados:(20891): Recebido pelo Webservice -> No.Ped: 36 Dispositivo: 20010-25 12:44:17.959: W/dalvikvm(20891): threadid=1: thread exiting with uncaught exception (group=0x401f5560)10-25 12:44:17.959: E/AndroidRuntime(20891): FATAL EXCEPTION: main10-25 12:44:17.959: E/AndroidRuntime(20891): java.lang.NullPointerException10-25 12:44:17.959: E/AndroidRuntime(20891): at br.com.lemarq.sas.sync.SyncPed.onPostExecute(SyncPed. java:71) 10-25 12:44:17.959: E/AndroidRuntime(20891): at br.com.lemarq.sas.sync.SyncPed.onPostExecute(SyncPed. java:1) 10-25 12:44:17.959: E/AndroidRuntime(20891): at android.os.AsyncTask.finish(AsyncTask.java:417) 10-25 12:44:17.959: E/AndroidRuntime(20891): at android.os.AsyncTask.access$300(AsyncTask.java:127) 10-25 12:44:17.959: E/AndroidRuntime(20891): at android.os.AsyncTask$InternalHandler.handleMessage( AsyncTask.java:429) 10-25 12:44:17.959: E/AndroidRuntime(20891): at android.os.Handler.dispatchMessage(Handler.java: 99) 10-25 12:44:17.959: E/AndroidRuntime(20891): at android.os.Looper.loop(Looper.java:130) 10-25 12:44:17.959: E/AndroidRuntime(20891): at android.app.ActivityThread.main(ActivityThread.java:3687) 10-25 12:44:17.959: E/AndroidRuntime(20891): at java.lang.reflect.Method.invokeNative(Native Method) 10-25 12:44:17.959: E/AndroidRuntime(20891): at java.lang.reflect.Method.invoke(Method.java:507) 10-25 12:44:17.959: E/AndroidRuntime(20891): at com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run( ZygoteInit.java:878) 10-25 12:44:17.959: E/AndroidRuntime(20891): at com.android.internal.os.ZygoteInit.main(ZygoteInit. java:636) 10-25 12:44:17.959: E/AndroidRuntime(20891): at dalvik.system.NativeStart.main(Native Method)
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
0 comentários:
Postar um comentário