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

标签 android

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

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

取决于方法执行,我将显示 UI 或制作对话框

简而言之,我的问题是,如何显示 ProgressBar 并完全隐藏 Main Layout 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 
   }
}

但它不工作..

最佳答案

当没有互联网连接时使用自定义界面通知:

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

在网络服务调用上实现接口(interface):

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

关于android - 是否可以在启动 MainActivity 时查看 ProgressBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27293613/

相关文章:

android - 在 ExpandableListView 中获取 subview 内容

android - 从服务调用 Activity onCallStateChange

android - 如何使用 "thread"或 "AsyncTask"发送电子邮件而不显示 Android 中的默认电子邮件

java - 显示错误\. java.lang.NullPointerException : Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference

Android Opengl 不会像模拟器那样呈现我的显示

android - Kotlin RecyclerView 添加加载页脚

android-layout - ListView选择自定义颜色

android - 如何在崩溃后禁用 android 应用程序自动重启 (Android 2.2)

Android:在整个动画中保持图像可见

android - 应该在哪里报告与不同安卓设备的不兼容性?