没有互联网连接时显示刷新页面按钮
showing refresh page button when there is no internet connection
我有一个 activity 需要互联网连接,我在加载页面时放置了一个进度条,但是当用户没有互联网连接时,进度条总是 VISIBLE ,喜欢下面的代码
@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,请问有解决办法吗?
您必须像这样检查您是否已连接到互联网:
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。
您将需要在您的清单中获得此权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我有一个 activity 需要互联网连接,我在加载页面时放置了一个进度条,但是当用户没有互联网连接时,进度条总是 VISIBLE ,喜欢下面的代码
@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,请问有解决办法吗?
您必须像这样检查您是否已连接到互联网:
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。 您将需要在您的清单中获得此权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />