I'm not a programmer, this is my first program, so you could tell me more in detail how I can update WebView using Swipe Refresh. I need the WebView page to be updated with a swipe, because I donβt know how to do it, but I managed to build some kind of program, but it doesnβt update the pages. When I change content on the site, the content in the application remains the same.
activity_main.xml:
<include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> MainActivity:
package com.mywebsite.myapplic; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v4.widget.SwipeRefreshLayout; import android.view.KeyEvent; import android.view.View; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import java.net.URI; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { //initializing WebView private WebView mwebView; @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.setDrawerListener(toggle); toggle.syncState(); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); //WebView mwebView = (WebView) findViewById(R.id.mywebView); WebSettings webSettings = mwebView.getSettings(); webSettings.setJavaScriptEnabled(true); //improve webView performance mwebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); mwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); mwebView.getSettings().setAppCacheEnabled(true); mwebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); webSettings.setDomStorageEnabled(true); webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); webSettings.setUseWideViewPort(true); webSettings.setSavePassword(true); webSettings.setSaveFormData(true); webSettings.setEnableSmoothTransition(true); mwebView.loadUrl("http://abramovn.16mb.com/"); //force links open in webview only mwebView.setWebViewClient(new MyWebviewClient()); } @Override public void onBackPressed() { DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } } @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId(); if (id == R.id.nav_0) { // Handle the camera action mwebView.loadUrl("http://abramovn.16mb.com/"); } else if (id == R.id.nav_1) { mwebView.loadUrl("http://abramovn.16mb.com/ΡΠΈΠΊΠ»-forΡΠΈΠΊΠ»-ΡΠΎ-ΡΡΠ΅ΡΡΠΈΠΊΠΎΠΌ/"); } else if (id == R.id.nav_2) { mwebView.loadUrl("http://abramovn.16mb.com/ΡΠΈΠΊΠ»-while/"); } else if (id == R.id.nav_3) { mwebView.loadUrl("http://abramovn.16mb.com/ΡΠΈΠΊΠ»-Ρ-ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ-repeat/"); } else if (id == R.id.nav_4) { mwebView.loadUrl("http://abramovn.16mb.com/ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅-ΠΌΠ°ΡΡΠΈΠ²Ρ/"); } else if (id == R.id.nav_5) { mwebView.loadUrl("http://abramovn.16mb.com/ΡΡΠ½ΠΊΡΠΈΠΈ/"); } else if (id == R.id.nav_6) { mwebView.loadUrl("http://abramovn.16mb.com/ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ/"); } else if (id == R.id.nav_7) { mwebView.loadUrl("http://abramovn.16mb.com/ΡΠ΅ΡΡΡ/"); } else if (id == R.id.nav_8) { mwebView.loadUrl("http://abramovn.16mb.com/ΠΊΠΈΠΌΡ/"); } else if (id == R.id.nav_9) { mwebView.loadUrl("http://abramovn.16mb.com/%d1%83%d1%87%d0%b5%d0%b1%d0%bd%d0%b8%d0%ba%d0%b8/"); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); return true; } private class MyWebviewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (Uri.parse(url).getHost().equals("http://abramovn.16mb.com/")) { //open url contents in webview return false; } else { //here open external links in external browser or app Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } } //ProgressDialogue ProgressDialog pd = null; @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { pd=new ProgressDialog(MainActivity.this); pd.setTitle("Please Wait.."); pd.setMessage("Website is Loading.."); pd.show(); super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { pd.dismiss(); super.onPageFinished(view, url); } } //goto previous page when pressing back button @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: if (mwebView.canGoBack()) { mwebView.goBack(); } else { finish(); } return true; } } return super.onKeyDown(keyCode, event); }}