是否可以在加载 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/