Usando a resposta de uma classe em outra
-
28-09-2019 - |
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
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!