Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android webview forward button

I want to know how to disable and enable forward menu button as in android's private browser.I am writing an app where I am displaying 3 webviews and I want to incorporate the basic functionality of android's own browser options.Everything is working fine as of now w.r.t functionality. Only thing is 'forward'menu item is always enabled.I have mentioned conditoin too for if canGoFwd then goFwd. Thing is, I have defined menu items separately and wrote forward function separately, problem is dynamically changing states for 'forward' button

like image 692
Rashmi.B Avatar asked Feb 22 '26 11:02

Rashmi.B


1 Answers

private WebView webView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    final Button previousButton =(Button) findViewById(R.id.previousButton);

    previousButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

               if(webView.canGoBack()){
                   webView.goBack();
               }
        }
    });
    final Button forwardButton =(Button) findViewById(R.id.forwardButton);

    forwardButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

               if(webView.canGoForward()){
                   webView.goForward();
               }
        }
    });
    webView.setWebViewClient( new WebViewClient() {



        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished( WebView view, String url ) {

            super.onPageFinished(webView, url );

            previousButton.setEnabled(view.canGoBack());
            forwardButton.setEnabled(view.canGoForward());

        }

        @Override
        public void onReceivedError( WebView view, int errorCode, String description, String failingUrl ) {

            super.onReceivedError( webView, errorCode, description, failingUrl );
            Toast.makeText( WebViewActivity.this, description, Toast.LENGTH_LONG );
        }
    } );
    webView.loadUrl("");

webview.xml file

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <Button
        android:id="@+id/previousButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:enabled="false" 
        android:text="previous"/>

    <Button
        android:id="@+id/forwardButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/previousButton"
        android:text="forward"
        android:enabled="false" />
</RelativeLayout>
like image 187
Rockin Avatar answered Feb 26 '26 17:02

Rockin