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