在没有网络连接的情况下显示刷新页面按钮

问题描述 投票:1回答:1

我有一个需要连接互联网的活动,我放了一个加载页面的进度条,但是当用户没有连接互联网的时候,进度条始终是 可见,像下面的代码

   @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);
    }
}

我想要的是,当没有网络连接时,进度条的状态是 消失了 并立即 显示按钮这个按钮的功能是 刷新活动有什么解决办法吗?

java android android-studio android-progressbar
1个回答
0
投票

你要检查一下你是否连接了互联网,这样。

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" />
© www.soinside.com 2019 - 2024. All rights reserved.