我如何从另一个屏幕调用webview



我有3个不同的屏幕:主(包含一个图像),对话框(包含另一个图像)和浏览器(包含一个webView)和一个活动源,好的,在活动源中,我调用对话框在主布局中单击图像,然后对话框显示另一个图像,我想当单击对话框图像时,应用程序更改浏览器布局的主布局,然后浏览器加载一个特定的URI,然后关闭对话框。

我的代码不工作,因为我不知道我需要如何使用webView在单独的布局,例如,在对话框中调用我需要使用dialog.findViewById(R.id.webView1)或在主要只有findViewById(R.id.webView1),但这不工作现在和应用程序崩溃…

我代码:

       ImageView imgMain = (ImageView)findViewById(R.id.imgMain1);
    imgMain.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        final Dialog dialog = new Dialog(mainActivity.this);
        dialog.setContentView(R.layout.dialog);
        dialog.setTitle("Android");
        dialog.setCancelable(true);
        dialog.show();
        //Boton de cerrar del dialog Android
        Button closeDialog = (Button)dialog.findViewById(R.id.closeDialogBT);
        closeDialog.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.cancel();
            }
        });
        //click en imagen juegos del dialog android
            ImageView imgDialog = (ImageView)dialog.findViewById(R.id.imgDialog1);
            imgDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    final WebView mWebView = (WebView)findViewById(R.id.webView1);
                    mWebView.loadUrl("http://www.example.com");
                    mWebView.setWebViewClient(new WebViewClient());
                    setContentView(R.layout.browser);
                    dialog.cancel();
                }
        });

    }
    });

谢谢! !

为什么要从另一个Activity启动WebView

最好从你的"imgDialog"开始包含WebView的活动。

和发送URL字符串。

在下一步中加载webview的URL字符串从intent.

试试这个。希望这对你有帮助

public class Example extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.translate);
    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.example.com");
    mWebView.setWebViewClient(new HelloWebViewClient());

}
private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView webview, String url)
    {
        webview.loadUrl(url);
        return true;
    }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
    {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
}

最新更新