Wyciąganie zmiennej z classy

0

Mam problem z wyciągnięciem zmiennej z classy.
Posiadam dwa Acticity o nazwach FirstEkran.java i LoadingStringCity.java Ta druga wygląda następująco

   public  class LoadingStringCityy extends AsyncTask<Void,Void,String> {
        String JSON_STRING_CITY;
        String json_string;
        String json_url;


        @Override
        protected void  onPreExecute(){
            json_url ="http://przewodnik.tk/Admire/json_get_data.php";
        }

        @Override
        protected String doInBackground(Void... voids) {


            try {
                URL url = new URL(json_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                InputStream inputStream = null;
                inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                StringBuilder   stringBuilder = new StringBuilder();
                while((JSON_STRING_CITY = bufferedReader.readLine()) !=null){
                    stringBuilder.append(JSON_STRING_CITY+"\n");
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return stringBuilder.toString().trim();

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

            return null;
        }
        @Override
        protected void  onProgressUpdate(Void... values){
            super.onProgressUpdate(values);
        }
        @Override
        protected void onPostExecute(String result){
/////przypisuje resultat do json_string i go tutaj w konsoli dla przykładu żeby było widać że działa i nie jest pusty
            json_string = result;
       System.out.println(json_string);

        }
public class FirstEkran extends Activity {
    
   String json_string;
    String json_string_city;
    


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_first_ekran);

        //// i tutaj wywołuję tamtą classę
        LoadingStringCity loadingStringCity = new LoadingStringCity();
        loadingStringCity.execute();
        System.out.println("!!!!!!!!!!"+loadingStringCity.json_url_city);  ///wyswietla url podany w tamtej clasie
        System.out.println("!!!!!!!!!!!"+loadingStringCity.json_string_city); //wyświetla null 

    }
    }

    } 

I gdy wywołuję drugą classe z poziomu pierwszej nie chce zwracać mi w wyniku tej zmiennej json_string. json_url natomiast bez problemu zwraca. Więc może macie jakieś pomysły jak tego dokonać

Edit: Więc podczas wywołania classy json_string zostaje wypełniony bo mi to wyświetla ale jak chcę aby zwróciło ten json_string to tamtej classy gdzie wywołuję to już pokazuje null.

Edit:
http://scr.hu/8dy8/9pmjl

2

gdy wywołuję drugą classe z poziomu pierwszej nie chce zwracać mi w wyniku tej zmiennej json_string

W metodzie

 protected String doInBackground(Void... voids) 

zwracasz

stringBuilder.toString().trim() 

lub w przypadku łapanego wyjątku null, więc przypuszczam, że wywołujesz funkcję

 protected void onPostExecute(String result)

z parametrem result równym null, stąd json_string = null.

Teraz tak, zweryfikuj jak przebiega wywołanie funkcji doInBackground i czy tam nie poleciał wyjątek albo czy ten stream nie jest pusty. Polecam debuggera.

0

Czyli mam rozumieć że nie ma możliwości wyciągnięcia tego Stringa?

1 użytkowników online, w tym zalogowanych: 0, gości: 1