Я пытаюсь реализовать функциональность, т. Е. Если сетевое соединение включено, то приложение попадет в API.Я добавил код сетевого подключения в родительское действие и вызываю метод из его фрагмента, но получаю нулевую ошибку ссылки на объект.Я добавляю код.Пожалуйста, проверьте.
Код родительской активности для вызова функции из фрагмента:
private void showSnack(boolean isConnected) {
String message;
int color;
if (isConnected) {
**FinalizePreOrderFragment finalizePreOrderFragment = new FinalizePreOrderFragment(this);
finalizePreOrderFragment.finalizePreOrderApi();**
}
Код для фрагмента для вызова API
public void finalizePreOrderApi() {
// pBar.setVisibility(View.VISIBLE);
String tag_json_obj = "json_obj_req";
String url = Constants.Pre_Order;
HashMap<String, String> params = new HashMap<String, String>();
final SessionManager sessionManager = new SessionManager(getActivity());
HashMap<String, String> loggedDetails = sessionManager.getLoggedUserDetails();
params.put("api_token", loggedDetails.get("api_token"));
params.put("user_id", loggedDetails.get("id"));
params.put("shops_order_list", lis);
Log.e("TAG", "preOrderApi: " + params);
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, new JSONObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("pre_order_response", response.toString());
try {
if (response.has("error")) {
Toast.makeText(getActivity(), response.getString("error"), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), response.getString("success"), Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
e.printStackTrace();
Activity activity = getActivity();
if (activity != null && isAdded()) {
Toast.makeText(activity, R.string.some_error_occured, Toast.LENGTH_LONG).show();
}
}
// pBar.setVisibility(View.GONE);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.e("Error: " + error.getMessage());
Activity activity = getActivity();
if (activity != null && isAdded()) {
Toast.makeText(activity, R.string.some_error_occured, Toast.LENGTH_LONG).show();
pBar.setVisibility(View.GONE);
}
}
});
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
Я использую SharedPreference в точке ниже:
final SessionManager sessionManager = new SessionManager(getActivity());
HashMap<String, String> loggedDetails = sessionManager.getLoggedUserDetails();
Я сохраняю свои предпочтения в классе диспетчера сеансов.И получение ошибки в точке ниже:
public SessionManager(Context context) {
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}