Я не могу перейти к обновленному значению переменной-члена - 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;
}