C.S.
C.S.

Reputation: 379

Pass URL to WebView and navigate to that page

I have a Webview with some custom options, looks like this:

public void WebViewLoad (View view) {
        WebView myWebView = (WebView) findViewById(R.id.webView2);
        myWebView.setFocusable(true);
        myWebView.setFocusableInTouchMode(true);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        myWebView.getSettings().setDomStorageEnabled(true);
        myWebView.getSettings().setDatabaseEnabled(true);
        myWebView.getSettings().setAppCacheEnabled(true);
        myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

        myWebView.setWebViewClient(new WebViewClient());
        myWebView.setVisibility(View.VISIBLE);
        backtoLanguage.setVisibility(View.VISIBLE);
        myWebView.loadUrl(link); //<-- Load defined URL as link
    }

Its hidden untill WebViewLoad is called,but I want to run it with the link from

public void gotoEnglish() {
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
            SharedPreferences.Editor editor = sharedPref.edit();
            editor.putInt("selectedlanguage", LanguageFactory.LANGUAGE_ENGLISH);
            editor.commit();
//load WebWiewLoad with URL defined here

}

There might be some mistakes in the code, I'm pretty new to this...

Thank you verry much.

UPDATE:

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Switch;
import android.widget.Toast;
import android.widget.ToggleButton;

public class MainActivity extends AppCompatActivity {

    private ToggleButton toggleButton;
    private Button backtoLanguage;
    private static Bundle bundle = new Bundle();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
        backtoLanguage = (Button) findViewById(R.id.backtoLanguage);
        WebView myWebView = (WebView) findViewById(R.id.webView2);
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.setVisibility(View.GONE);
        backtoLanguage.setVisibility(View.GONE);
        SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
            int languageCode = sharedPref.getInt("selectedlanguage", -1);
            //LanguageFactory factory = new LanguageFactory();
            //Language language = factory.getLanguage(languageCode);
        if (languageCode == (100)){
            Toast.makeText(getApplicationContext(), "English is set to default launch page" ,Toast.LENGTH_LONG ).show();
            English();
        }
        if (languageCode == (101)){
            Toast.makeText(getApplicationContext(), "French is set to default launch page" ,Toast.LENGTH_LONG ).show();
            French();
        }
    }
    WebView myWebView;
    public void WebViewLoad (View view) {
        WebView myWebView = (WebView) findViewById(R.id.webView2);
        myWebView.setFocusable(true);
        myWebView.setFocusableInTouchMode(true);
        myWebView.getSettings().setJavaScriptEnabled(true);
        //myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        myWebView.getSettings().setDomStorageEnabled(true);
        myWebView.getSettings().setDatabaseEnabled(true);
        myWebView.getSettings().setAppCacheEnabled(true);
        myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.setVisibility(View.VISIBLE);
        backtoLanguage.setVisibility(View.VISIBLE);
    }

    public interface Language {
        void speak();
    }

    public class English implements Language {
        @Override
        public void speak() {
            Log.i("Tag", "English");
        }
    }
    public class French implements Language {
        @Override
        public void speak() {
            Log.i("Tag", "French");
        }
    }

    public void gotoenglish(View view) {
        if (toggleButton.isChecked()) {
            SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
            SharedPreferences.Editor editor = sharedPref.edit();
            editor.putInt("selectedlanguage", LanguageFactory.LANGUAGE_ENGLISH);
            editor.commit();
            English();
        } else English();
    }

    public void English() {
        myWebView.loadUrl("http://www.example.com/");
    }

I have included most of the code as you guys requested.

Upvotes: 0

Views: 3145

Answers (2)

C.S.
C.S.

Reputation: 379

I have archived this using this way:

private void go(String strUrl) {
    myWebView.loadUrl(strUrl);
}


public void English() {
        go("http://www.example.com/");
}

Upvotes: 1

Linh
Linh

Reputation: 60973

Declare your object myWebView as a global variable.Then you can easy access to it inside gotoEnglish() method for loading URL

Here is example code

WebView myWebView
public void WebViewLoad (View view) {
    myWebView = (WebView) findViewById(R.id.webView2);
    ...
}

public void gotoEnglish() {
     ...
     myWebView.loadUrl(link); //<-- Load defined URL as link
}

Hope this help

Upvotes: 2

Related Questions