Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否可以在启动MainActivity时查看ProgressBar?_Android - Fatal编程技术网

Android 是否可以在启动MainActivity时查看ProgressBar?

Android 是否可以在启动MainActivity时查看ProgressBar?,android,Android,是否可以在加载MainActivity时显示第一个ProgressBar(中间)。并隐藏UI元素,直到ProgressBar可见 我想在onCreate()方法上执行一个方法(Internet检查),ProgressBar在方法执行之前应该是可见的,并且还隐藏了后台UI元素 根据执行的方法,我将显示UI或生成对话框 简而言之,我的问题是,如何显示ProgressBar并完全隐藏主布局UI?方法执行结束后,progressBar将关闭 我想要达到的是 onCreate(...){ progre

是否可以在加载MainActivity时显示第一个ProgressBar(中间)。并隐藏UI元素,直到ProgressBar可见

我想在onCreate()方法上执行一个方法(Internet检查),ProgressBar在方法执行之前应该是可见的,并且还隐藏了后台UI元素

根据执行的方法,我将显示UI或生成对话框

简而言之,我的问题是,如何显示ProgressBar并完全隐藏主布局UI?方法执行结束后,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 
   }
}

但是它不起作用

在布局XML中为外部布局创建一个
id
,并使用
findViewById
。加载时隐藏该布局(布局中的所有
视图
也将隐藏),并在加载完成时显示

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);
}

在布局XML中为外部布局创建一个
id
,并使用
findViewById
。加载时隐藏该布局(布局中的所有
视图
也将隐藏),并在加载完成时显示

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);
}

使用自定义界面在没有internet连接时通知:

public interface WebCallListener{
  public void onCallComplete(String response);
  public void 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;
   }
}
在web服务调用上实现接口:

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();
   }
}
如何显示/隐藏进度

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);
    }
});

使用自定义界面在没有internet连接时通知:

public interface WebCallListener{
  public void onCallComplete(String response);
  public void 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;
   }
}
在web服务调用上实现接口:

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();
   }
}
如何显示/隐藏进度

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);
    }
});

为什么在主要活动之前做?开始一项内容不可见的活动,向您展示旋转器,如果已连接互联网,则向您展示内容Murtaza Hussain@i是否足够清晰?我在单一活动-主要活动中工作。一旦加载MainActivity.class,关联的布局就会被实例化。您不知道Android的概念。也许这个答案会对你们有所帮助,尽管他们回答的正是我的意思。为什么要在主要活动之前做呢?开始一项内容不可见的活动,向您展示旋转器,如果已连接互联网,则向您展示内容Murtaza Hussain@i是否足够清晰?我在单一活动-主要活动中工作。一旦加载MainActivity.class,关联的布局就会被实例化。您不知道Android的概念。也许这个答案会对你们有所帮助,尽管他们回答的正是我的意思。方法isNetwokReachable()无论Internet是否可用,总是返回true。我正在使用bluestack.method isNetworkReachable()始终返回true,无论Internet是否可用。我用的是蓝调。