我有一个需要连接互联网的活动,我放了一个加载页面的进度条,但是当用户没有连接互联网的时候,进度条始终是 可见,像下面的代码
@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);
}
}
我想要的是,当没有网络连接时,进度条的状态是 消失了 并立即 显示按钮这个按钮的功能是 刷新活动有什么解决办法吗?
你要检查一下你是否连接了互联网,这样。
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;
只要设置 Progresssbar Gone when you are not connected.You will need this permission in yourmanifest:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />