Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当internet连接不可用时,如何显示ProgsBar?_Android_Jsoup_Android Webview - Fatal编程技术网

Android 当internet连接不可用时,如何显示ProgsBar?

Android 当internet连接不可用时,如何显示ProgsBar?,android,jsoup,android-webview,Android,Jsoup,Android Webview,我正在使用Android应用程序。当互联网连接不可用时,应用程序关闭。我用了很少的方法来解决这个问题,但我不能。我在谷歌搜索了更多的论坛,但是找不到。也许你能解决这个问题 应用内使用Webview和Jsoup解析器。我给你们所有的主要活动代码是为了更好的理解 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV

我正在使用Android应用程序。当互联网连接不可用时,应用程序关闭。我用了很少的方法来解决这个问题,但我不能。我在谷歌搜索了更多的论坛,但是找不到。也许你能解决这个问题

应用内使用
Webview
Jsoup
解析器。我给你们所有的主要活动代码是为了更好的理解

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);


    webview= (WebView) findViewById(R.id.webview1);
    webview.getSettings().setCacheMode( WebSettings.LOAD_CACHE_ELSE_NETWORK );
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

    webview.setWebViewClient(new WebViewClient(){

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            new MyAsynTask().execute(url);
            return super.shouldOverrideUrlLoading(view, url);
        }

    });

    new MyAsynTask().execute(this.url);
}


@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item){
    Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
    startActivityForResult(myIntent, 0);
    return true;

}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    FragmentManager fragmentManager = getFragmentManager();


    if (id == R.id.nav_camera) {

        url="http://hut.az/arenda-kvartir/";
        webview.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                new MyAsynTask().execute(url);
                return super.shouldOverrideUrlLoading(view, url);
            }

        });

        new MyAsynTask().execute(this.url);


    } else if (id == R.id.nav_gallery) {

        url="http://hut.az/prodaja-kvartir/";
        webview.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                new MyAsynTask().execute(url);
                return super.shouldOverrideUrlLoading(view, url);
            }

        });

        new MyAsynTask().execute(this.url);


    } else if (id == R.id.nav_slideshow) {

        url="http://hut.az/novostroyki/";

        webview.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                new MyAsynTask().execute(url);
                return super.shouldOverrideUrlLoading(view, url);
            }

        });

        new MyAsynTask().execute(this.url);

    } else if (id == R.id.nav_manage) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

private class MyAsynTask extends AsyncTask<String, Void, Document > {
    @Override
    protected Document doInBackground(String... urls) {

        Document document = null;
        try {

            document= Jsoup.connect(urls[0]).get();
            document.getElementsByClass("header1").remove();
            document.getElementsByClass("topbar clearfix").remove();
            document.getElementsByClass("mapandslider").remove();
            document.select("div#right_sidebar").remove();
            document.select("div#left_sidebar").remove();
            document.getElementsByClass("footer1").remove();
            document.getElementsByClass("copyright").remove();



        } catch (IOException e) {
            e.printStackTrace();

       this.ShowMess();
        }
        return document;
    }
          public  void ShowMess(){

                progressDialog = new ProgressDialog(MainActivity.this);
                progressDialog.setTitle("Internet Baglantisi Yoxdur !");
                progressDialog.setMessage("Zəhmət olmasa gözləyin...");
                progressDialog.setIndeterminate(false);
                progressDialog.show();

          }

    protected void onPreExecute() {
        super.onPreExecute();

        progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setTitle("Yüklənir");
        progressDialog.setMessage("Zəhmət olmasa gözləyin...");
        progressDialog.setIndeterminate(false);
        progressDialog.show();
    }

    @Override
    protected void onPostExecute(Document document) {

        super.onPostExecute(document);

        webview.loadDataWithBaseURL(url,document.toString(),"text/html","utf-8","");
        progressDialog.dismiss();

    }

}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。添加抽屉链接器(切换);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
webview=(webview)findViewById(R.id.webview1);
webview.getSettings().setCacheMode(WebSettings.LOAD\u CACHE\u ELSE\u网络);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}
@凌驾
public void onBackPressed(){
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
if(抽屉isDrawerOpen(重力压缩机启动)){
抽屉。关闭抽屉(重力压缩机启动);
}否则{
super.onBackPressed();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
Intent myIntent=newintent(getApplicationContext(),MainActivity.class);
startActivityForResult(myIntent,0);
返回true;
}
@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
//处理导航视图项单击此处。
int id=item.getItemId();
FragmentManager FragmentManager=getFragmentManager();
if(id==R.id.nav_摄像机){
url=”http://hut.az/arenda-kvartir/";
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}否则如果(id==R.id.nav_画廊){
url=”http://hut.az/prodaja-kvartir/";
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}else if(id==R.id.nav_幻灯片){
url=”http://hut.az/novostroyki/";
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
新建MyAsynTask().execute(url);
返回super.shouldOverrideUrlLoading(视图、url);
}
});
新建MyAsynTask().execute(this.url);
}else if(id==R.id.nav_manage){
}else if(id==R.id.nav_共享){
}else if(id==R.id.nav_send){
}
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}
私有类MyAsynTask扩展异步任务{
@凌驾
受保护文档doInBackground(字符串…URL){
单据=空;
试一试{
document=Jsoup.connect(URL[0]).get();
document.getElementsByClass(“header1”).remove();
document.getElementsByClass(“topbar clearfix”).remove();
document.getElementsByClass(“mapandslider”).remove();
文档。选择(“div#right_边栏”)。删除();
文档。选择(“div#left#u边栏”)。删除();
document.getElementsByClass(“footer1”).remove();
document.getElementsByClass(“版权”).remove();
}捕获(IOE异常){
e、 printStackTrace();
这是showmesss();
}
归还文件;
}
公共图书馆{
progressDialog=新建progressDialog(MainActivity.this);
progressDialog.setTitle(“Internet Baglantisi Yoxdur!”);
progressDialog.setMessage(“Zəhmət olmasa gözləyin…”);
progressDialog.setUndeterminate(false);
progressDialog.show();
}
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog=新建progressDialog(MainActivity.this);
progressDialog.setTitle(“Yüklənir”);
progressDialog.setMessage(“Zəhmət olmasa gözləyin…”);
progressDialog.setUndeterminate(false);
progressDialog.show();
}
@凌驾
受保护的void onPostExecute(文档){
super.onPostExecute(文档);
loadDataWithBaseURL(url,document.toString(),“text/html”,“utf-8”,“utf-8”);
progressDialog.disclose();
}
}

}

在活动或片段中显示进度条的位置。内部oncreate。也可以在else中完成您的工作。复制整个代码
use following method: 
  private boolean checkNetwork() {
        boolean wifiDataAvailable = false;
        boolean mobileDataAvailable = false;
        ConnectivityManager conManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo[] networkInfo = conManager.getAllNetworkInfo();
        for (NetworkInfo netInfo : networkInfo) {
            if (netInfo.getTypeName().equalsIgnoreCase("WIFI"))
                if (netInfo.isConnected())
                    wifiDataAvailable = true;
            if (netInfo.getTypeName().equalsIgnoreCase("MOBILE"))
                if (netInfo.isConnected())
                    mobileDataAvailable = true;
        }
        return wifiDataAvailable || mobileDataAvailable;
    }

where you want to show progressbar.
if(!checkNetwork()){
    show progressbar or you want to show toast also like no internet connection avilable please try again
}
else {
your task you want
}