AsyncTask: не удается разрешить ошибку конструктора - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу передать целое число другому классу. В части Intent intent = new Intent(this,favaoritesFragment.class) возникает ошибка конструктора. Я попытался изменить this на getActivity и fetchdata.this, но ни один из них не сработал. Может ли кто-нибудь дать мне совет, чтобы исправить это.

package com.morimoku.location_activity;

import android.content.Intent;
import android.os.AsyncTask;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
            public class fetchdata extends AsyncTask<Void,Void,Void> {
        String data = "";
        String dataParsed = "";
        String singleParsed = "";
         public int i1;
        @Override
        protected Void doInBackground(Void... voids) {
            try {
                URL url = new URL("URL");
                HttpURLConnection httpURLConnection =(HttpURLConnection) url.openConnection();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                String line ="";
                while (line!=null){
                    line = bufferedReader.readLine();
                    data = data+line;
                }
                JSONArray JA = new JSONArray(data);
                for(int i=0;i<JA.length();i++){
                    JSONObject JO= (JSONObject)JA.get(i);
                    singleParsed = (String) JO.get("keihinTohokuNegishi")+JO.get("trainInormationText");
                    if ("trainInformationText"=="normal"){
                        i1 = 0;
                    }else{
                        i1 = 1;
                    }

                    dataParsed = dataParsed + singleParsed;
                }

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

            return null;
        }
    @Override
            protected void onPostExecute(Void aVoid) {
                super.onPostExecute(aVoid);
                Intent intent = new Intent(this,favaoritesFragment.class)
         }
        }

1 Ответ

0 голосов
/ 10 ноября 2019

Во-первых, обратите внимание, что AsyncTask будет помечен как устаревший в Android 11. AsyncTask устарел в течение нескольких лет. Я рекомендую вам сосредоточиться на изучении Android с использованием современных материалов, ни один из которых не должен рекомендовать AsyncTask.

. При этом вам нужно добавить поле Context к вашему *. 1007 * класс, возможно, заполняется через параметр конструктора. Затем вы можете использовать этот Context в вашем Intent конструкторе в onPostExecute().

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