Pergunta

Criei um aplicativo em que estendi uma atividade e recebi a resposta do serviço da Web usando com sucesso o AsyncTask, agora quero fazer a análise JSON dessa resposta em outra classe que não seja a atividade principal.

Como pode fazer isso? Como uso a resposta recebida da atividade principal em uma classe separada, porque na próxima classe eu só quero fazer a análise usando a resposta obtida na classe principal.

Alguém pode me dar uma resposta disso!

Obrigado, David

Foi útil?

Solução

Você pode enviar valor para outra classe passando para seu construtor ou passando como qualquer argumento de função.

Ou se você quiser passar o valor para a classe de assínctas

 public class abc extends Activity {

 new AsynctaskClassName.execute(response);      
 }

E a assínceta será

 public class AsynctaskClassNameextends AsyncTask <String, String, String> {
 protected Z doInBackground(String... res){  
 ...  
  response = res[0]  
 ...   
}

Ou passar valor para outra intenção, é melhor passar por

    Intent.putExtra("response", response);

e lido por

 Bundle extras = getIntent().getExtras();
 String response = extras.getString("response");

Outras dicas

Você pode simplesmente criar uma nova classe

public class Parser
{
public static String rawJSON;
....
}

Agora, em sua assíncena, basta armazenar a resposta JSON em Parser.rawjson como este

protected Z doInBackground(X...x){
...
Parser.rawJSON=responseFromServer(URL);
...
}

& você terminou!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top