How can a link within a WebView load another layout using javascript?

Posted by huffmaster on Stack Overflow See other posts from Stack Overflow or by huffmaster
Published on 2010-06-10T19:10:09Z Indexed on 2010/06/10 19:13 UTC
Read the original article Hit count: 278

Filed under:
|
|

So I have 2 layout files (main.xml, featured.xml) and both each have a single WebView. When the application starts "main.xml" loads a html file into it's WebView. In this html file I have a link that calls javascript that runs code in the Activity that loaded the html. Once back in this Activity code though I try running setContentView(R.layout.featured) but it just bombs out on me. If I debug it just dies without any real error and if I run it the application just Force closes.

Am I going about this correctly or should I be doing something differently?

    final private int MAIN = 1;
    final private int FEATURED = 2;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webview = (WebView) findViewById(R.id.wvMain);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setSupportZoom(false);
        webview.addJavascriptInterface(new EHJavaScriptInterface(), "eh");
        webview.loadUrl("file:///android_asset/default.html");             
    }

    final class EHJavaScriptInterface {

        EHJavaScriptInterface() {
        }

        public void loadLayout(final String lo) {
            int i = Integer.parseInt(lo.trim());
            switch (i) {
            /****** THIS IS WHERE I'M BOMBING OUT *********/
            case FEATURED: setContentView(R.layout.featured);break;
            case MAIN: setContentView(R.layout.main);break;
            }           
        }

    }

© Stack Overflow or respective owner

Related posts about java

Related posts about android