我有一个需要互联网连接的activity,我放了一个加载页面的进度条,但是当用户没有互联网连接时,进度条总是可见的,就像下面的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BlogModel blogModel = new ViewModelProvider(this).get(BlogModel.class);
blogModel.getBlogList().observe(this,getBlog);
blogModel.setBlog("extra_blog");
showLoad(true);
}
private Observer<ArrayList<BlogItem>> getBlog = new Observer<ArrayList<BlogItem>>() {
@Override
public void onChanged(ArrayList<BlogItem> blogItems) {
if (blogItems != null){
adapter.setData(blogItems);
}
showLoad(false);
}
};
private void showLoad(Boolean state){
if (state){
progressBar.setVisibility(View.VISIBLE);
}
else {
progressBar.setVisibility(View.GONE);
}
}
而且我想要的是,当没有互联网连接的时候,进度条有GONE和立即显示按钮的状态,而这个按钮会起到刷新activity的作用,有没有和这件事相关的解决方案?
您必须检查您是否像这样连接到internet:
boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
//we are connected to a network
connected = true;
}
else
// not connected
connected = false;
当您没有连接时,只需将ProgressBar设置为Gone即可。 您在清单中需要此权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />