@Raven124
студент

Как вызвать метод фрагмента во фрагменте?

Есть фрагмент. В нем есть метод фетчинга. Определяю TextView. Хочу поместить туда список Json. Незнаю как и где вызвать метод чтобы он при создании фрагмента сработал и мы в приложении видели выведенный список.
public class Frag2 extends Fragment {
  public static TextView data;
  @Nullable
  @Override
  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag2_layout, container, false);
    return view;
  }

  @Override
  public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    data = (TextView)view.findViewById(R.id.fetdata);

  }



  public class fetchData extends AsyncTask<Void, Void, Void> {
    String data = "";
    String dataParsed = "";
    String singleParsed = "";


    @Override
    protected Void doInBackground(Void... voids) {
      try {
        URL url = new URL("https://api.github.com/users/reijs/repos");
        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 = "ID:" + JO.get("id") + "\n" +
                  "Name:" + JO.get("name") + "\n";
          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);
      Frag2.data.setText(this.dataParsed);
    }

  }
}
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 1
RATlius
@RATlius
Разработчик Android
В Вашем фрагменте метод fetchData.execute(); вообще не вызывается
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы