// WebAPIHelper Class public class WebAPIHelper { private PopupWindow popupWindow; public boolean isProgressVisible = false; int requestNumber; LayoutInflater layoutInflater; LogInFragment logInFragment; public WebAPIHelper(int requestNumber, LogInFragment logInFragment, boolean isProgressVisible) { this.requestNumber = requestNumber; this.logInFragment = logInFragment; this.isProgressVisible = isProgressVisible; layoutInflater = (LayoutInflater) logInFragment.getActivity() .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); } public void callRequest(final String url) { String final_url = Constant.BasicUrl + url.replace(" ", "%20"); System.out.println(final_url); new Handler().postDelayed(new Runnable() { @Override public void run() { showProgDialog(); } }, 100); StringRequest stringRequest = new StringRequest(Method.GET, final_url, new Response.Listener() { @Override public void onResponse(String response) { try { if (requestNumber == Constant.LOGIN) { TestData data = new TestData(); JSONObject jsonObject = new JSONObject(response); data.status = jsonObject.getString("status"); data.msg = jsonObject.getString("msg"); if (jsonObject.getString("status").equals("1")) { JSONObject jObjData = jsonObject.getJSONObject("data"); data.user_id = jObjData.getString("user_id"); data.username = jObjData.getString("username"); data.email = jObjData.getString("email"); } logInFragment.setResponse(requestNumber, data); } dissmissDialog(); } catch (Exception e) { System.out.println("catch :" + e.toString()); } finally { dissmissDialog(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // TODO Auto-generated method stub VolleyLog.d("volly error:", error.getMessage()); dissmissDialog(); } }); MyApplication.getInstance().addToRequestQueue(stringRequest, "MYTestApp"); } @SuppressLint("InflateParams") public void showProgDialog() { if (isProgressVisible) { try { View popupView = layoutInflater.inflate(R.layout.dialog_progress, null); popupWindow = new PopupWindow(popupView, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0); popupView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // dissmissDialog(); } }); } catch (Exception e) { } } } public void dissmissDialog() { try { if (popupWindow != null) { if (popupWindow.isShowing()) popupWindow.dismiss(); popupWindow = null; } } catch (Exception e) { popupWindow = null; } } } // MyApplication Class public class MyApplication extends Application { public MyApplication() { super(); } public static final String TAG = "MYTestApp"; private RequestQueue mRequestQueue; private static MyApplication mInstance; @Override public void onCreate() { super.onCreate(); mInstance = this; } @Override protected void attachBaseContext(Context base) { // Multidex support install MultiDex.install(base); super.attachBaseContext(base); } public static synchronized MyApplication getInstance() { return mInstance; } public RequestQueue getRequestQueue() { if (mRequestQueue == null) { mRequestQueue = Volley.newRequestQueue(getApplicationContext()); } return mRequestQueue; } public void addToRequestQueue(Request req, String tag) { req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); getRequestQueue().add(req); } public void addToRequestQueue(Request req) { req.setTag(TAG); getRequestQueue().add(req); } public void cancelAllRequests(Object tag) { if (mRequestQueue != null) { mRequestQueue.cancelAll(tag); } } } // Constant class is just simple class public class Constant { public static int LOGIN = 5001; // Show snackbar anywhere you want using Constant.showMsg(context, msg); public static void showMsg(Context context, String msg) { Snackbar snackbar = Snackbar.make(((Activity) context).findViewById(android.R.id.content), msg, Snackbar.LENGTH_LONG); View view = snackbar.getView(); TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text); tv.setBackgroundColor(ContextCompat.getColor(context, R.color.transparent)); tv.setTextColor(Color.WHITE); snackbar.show(); } } // How to use WebAPIHelper WebAPIHelper webhelper = new WebAPIHelper(Constant.LOGIN, LogInFragment.this, true); webhelper.callRequest("your url and get parameters");