Невозможно передать правильное значение переменной-члена действия в другое действие - PullRequest
0 голосов
/ 17 апреля 2020

Я не могу перейти к обновленному значению переменной-члена - caseNum of mainActivity к фрагменту после присвоения ему значения, полученного из json. Я использую listView для отображения всего содержимого. Я использовал Toast для отладки, и он может показывать желаемое значение var caseNum.

Ниже приведен фрагмент кода MainActivity:

private RequestQueue mQueue;
public String casesNum; //On assigning a value to this var, the assigned value is passed when it //is called as a parameter in the FragmentClass.
private SectionsPagerAdapter mSectionsPagerAdapter;
private ViewPager mViewPager;


@Override
protected void onCreate(Bundle savedInstanceState) {

    //VOLLEY
    mQueue = Volley.newRequestQueue(MainActivity.this);

    String url = "https://corona.lmao.ninja/v2/all";
    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            try {

                JSONObject jsonObject = new JSONObject(response.toString());
                casesNum = jsonObject.getString("cases");

                Toast.makeText(MainActivity.this,casesNum, Toast.LENGTH_LONG).show();

            } catch (JSONException e) {

                e.printStackTrace();
            }
        }

    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

            Log.d( "ErrorResponse: ", error.toString());

        }

    });

    mQueue.add(request);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}
    public String getCasesNum() {
          return casesNum;
}

Фрагмент кода фрагмента:

private ListView mListView;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.total_fragment, container, false);

    mListView = view.findViewById(R.id.totalListView);
    ArrayList<TotalListView> list = new ArrayList<>();

    MainActivity mainActivity = (MainActivity) getActivity();
    String data = mainActivity.getCasesNum();

    list.add(new TotalListView("Cases", mainActivity.casesNum)); //2nd param value doesn't get      
    //acknowledged
    list.add(new TotalListView("Deaths", "12345"));
    list.add(new TotalListView("Recovered", "12345"));
    list.add(new TotalListView("Active", "12345"));
    list.add(new TotalListView("Critical", "12345"));
    list.add(new TotalListView("Tests", "12345"));

    CustomListAdapterMain adapterMain = new CustomListAdapterMain(getActivity(), R.layout.fragment_total_main, list);
    mListView.setAdapter(adapterMain);

    return view;
}
...