Используйте мои переменные из класса AsyncTask везде - PullRequest
0 голосов
/ 06 января 2019

Я получаю некоторую информацию из API с помощью json и добавляю ее в некоторые переменные. Проблема в том, что я не знаю, как использовать их в других классах или около того. Вот мой класс AsyncTask

class TestJson extends AsyncTask<String,String,String> {
     public static String aJsonString;

     @Override
     protected String doInBackground(String... strings) {


         ArrayList<Geocode> geocodes = null;

         DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
         HttpPost httppost = new HttpPost("https://developers.zomato.com/api/v2.1/geocode?lat=40.712776&lon=-74.005974");

         httppost.setHeader("user-key", "mykey");


         InputStream inputStream = null;
         String result = null;
         try {
             HttpResponse response = httpclient.execute(httppost);
             HttpEntity entity = response.getEntity();

             inputStream = entity.getContent();
             // json is UTF-8 by default
             BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
             StringBuilder sb = new StringBuilder();

             String line = null;
             while ((line = reader.readLine()) != null) {
                 sb.append(line + "\n");
             }
             result = sb.toString();
             JSONObject jObject = new JSONObject(result);


             JSONObject jsonObject= (JSONObject) jObject.get("location");


             //for nested json objects
             String title=(String)jsonObject.get("city_name");


             aJsonString = jObject.getString("link");

         } catch (Exception e) {

         } finally {
             try {
                 if (inputStream != null) inputStream.close();
             } catch (Exception squish) {
             }
         }

         try {

         } catch (Exception e) {
             e.printStackTrace();


         }
         return null;
     }
 }

Например, я сделал aJsonString статичным, но если я назову его где-нибудь еще, это даст мне ноль. Есть идеи на этот счет?

1 Ответ

0 голосов
/ 06 января 2019

Попытайтесь сохранить данные json в статических переменных (уровень класса / глобальный), имеющих публичный доступ, а затем поделиться ими в любом месте (вам могут понадобиться некоторые условия if - else для проверки на допустимые данные и на ненулевые данные).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...