Положение прогресса - PullRequest
       30

Положение прогресса

0 голосов
/ 11 ноября 2018

Я успешно создал приложение с вкладками и четырьмя вкладками, которые работают как положено. Каждая из вкладок загружает веб-страницу. Моя проблема в том, что я не могу разместить код выполнения для каждой вкладки, и некоторые пользователи будут знать, что страница загружается. Будет ли код прогресса находиться в mainactiviry кода или каждого действия / фрагмента? Я буду признателен за любую помощь и примеры. Спасибо в ожидании

1 Ответ

0 голосов
/ 11 ноября 2018

Вы можете легко это сделать, выполнив приведенный ниже код и выполнив важные шаги.

  1. Сначала создайте класс NetworkUtils и добавьте приведенный ниже код внутри этого класса

     public static NetworkUtils sNetworkUtils;
    
     
        public static NetworkUtils getInstance() {
                if (sNetworkUtils == null) {
                    sNetworkUtils = new NetworkUtils();
                }
                return sNetworkUtils;
            }</p>
    
    <p>
     
         public Boolean isNetworkAvailable(Context context) {
            ConnectivityManager check = (ConnectivityManager) context.
                    getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo[] info = check.getAllNetworkInfo();
            for (int i = 0; i < info.length; i++) {
                if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                    return true;
                }
            }
            return false;
        }
    
     
        public static ProgressDialog getProgressDialog(Context context) {
            return ProgressDialog.show(context, "", "Loading please wait..", true);
        }
    Вот что мы делаем! Мы создаем глобальный класс и объявляем статические методы. Таким образом, его можно использовать в любом месте вашего проекта, но в одном пакете.
    • В приведенном выше коде мы создаем логический метод isNetworkAvailable, который используется для проверки доступности сети перед выполнением вызова API. Этот подход безопасен и надежен при выполнении сетевых операций.

    • Используйте приведенный ниже код для вызова этих статических методов, чтобы отобразить диалог прогресса и проверку сети.

      if (NetworkUtils.getInstance().isNetworkAvailable(getApplicationContext())) { 
         mProgressDialog = NetworkUtils.getProgressDialog(LoginActivity.this);
         loginAPI();
      } else { Toast.makeText(getApplicationContext(),getString(R.string.no_network_message),
       Toast.LENGTH_SHORT).show();
      if (mProgressDialog != null) mProgressDialog.dismiss();
      }
    • В приведенном выше фрагменте кода мы используем mProgressDialog. Поэтому инициализируйте этот mProgressDialog глобально внутри каждого фрагмента или действия.
    • Вместо loginAPI () используйте метод вызова API.
    • Внутри вызова API, используете ли вы Volley или Retrofit. Используйте этот метод, чтобы отключить диалог прогресса при сбое или успешном вызове API.
      if (mProgressDialog != null) mProgressDialog.dismiss();
      
      Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы
...