2014-12-04 4 views
1

Можно ли отобразить первый ProgressBar (промежуточный) при загрузке MainActivity. И скрыть элемент пользовательского интерфейса. Upto ProgressBar является видимым.Можно ли просмотреть ProgressBar при запуске MainActivity?

Я хочу выполнить метод (проверка Интернета) по моему методу onCreate(), а ProgressBar должен быть видимым до выполнения метода, а также скрыть элементы фонового интерфейса.

Зависит от метода execute, i wil показать пользовательский интерфейс или сделать Dialog < Нет Интернета>.

Короче говоря, мой вопрос: как я могу отобразить ProgressBar и полностью скрыть основной интерфейс макета? После выполнения метода progressBar будет выключен.

, что я пытался добиться того,

onCreate(...){ 

progressBar = (ProgressBar)find.... 
progressBar.setVisibility(View.GONE); 

try{ 
    progressBar.setVisibility(View.VISIBLE); 

    boolean flag=isInternet(); 

    if(flag){ 
    progressBar.setVisibility(View.GONE); 
    // start my app task 
    } 
}catch(..){ 
      Inflate my Dialog 
    } 
} 

Но он не работает ..

+0

Зачем делать перед основным видом деятельности? Начните работу с непонятным содержимым, покажите, что вы используете, если подключен интернет, покажите свой контент. –

+0

Murtaza Hussain @ am i достаточно ясно? Я работаю в Single Activity - MainActivity. Как только MainActivity.class будет загружен, будет создан экземпляр компоновки. –

+0

Вы не знаете о концепции Android. Может быть, ответ вам поможет, хотя они отвечают именно на то, что я имел в виду. –

ответ

3

Использовать пользовательский интерфейс для уведомления, когда нет подключения к Интернету:

public interface WebCallListener{ 
    public void onCallComplete(String response); 
    public void noInternetConnectivity(); 
} 

ОРУДИЮ интерфейс на веб-службы вызова:

public void getDataFromServer(final WebCallListener webCallListener){ 
    if(isNetwokReachable()){ 
     new AsyncTask<Void,Void,String>(){ 
      @Override 
      protected String doInBackground(Void... params) { 
       //write your web service call code here 
       return null; 
      } 

      @Override 
      protected void onPostExecute(String response) { 
       super.onPostExecute(response); 
       webCallListener.onCallComplete(response); 
      } 
     }.execute(); 
    }else{ 
     webCallListener.noInternetConnectivity(); 
    } 
} 

Проверка подключения к Интернету:

public boolean isNetwokReachable() { 
    final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    final NetworkInfo netInfo = connMgr.getActiveNetworkInfo(); 

    if (netInfo != null && netInfo.isConnected()) { 
     return true; 
    } else { 
     return false; 
    } 
} 

Какпоказать/скрыть прогресс;

pbrLoading.setVisibility(View.VISIBLE); 
getDataFromServer(new WebCallListener() { 
    @Override 
    public void onCallComplete(String response) { 
     pbrLoading.setVisibility(View.VISIBLE); 
     // parse data from response 
    } 
    @Override 
    public void noInternetConnectivity() { 
     pbrLoading.setVisibility(View.GONE); 
    } 
}); 
+0

метод isNetwokReachable() всегда возвращает true, доступен ли Интернет или нет. Я использую bluestack. –

2

Создание id для вашего внешнего расположения в макете XML и использовать findViewById. Скрыть этот макет при загрузке (все View в макете тоже будут скрыты) и покажите его, когда загрузка будет выполнена.

parentLayout.setVisibility(View.GONE); 
progressBar.setVisibility(View.VISIBLE); 

boolean flag=isInternet(); 

if(flag){ 
progressBar.setVisibility(View.GONE); 
// start my app task 
parentLayout.setVisibility(View.VISIBLE); 
} 
+0

спасибо @ Blaze Tama. –

Смежные вопросы