我有3个不同的屏幕:main(包含一个图像),对话框(包含另一个图像)和浏览器(包含一个webView)和一个活动源,ok,在活动源中我在主布局中调用点击图像上的对话框,然后对话框显示另一个图像,我想在单击对话框图像时,应用程序更改浏览器布局的主要布局,然后浏览器加载特定的URI,然后关闭对话框。
我的代码不工作因为我不知道我需要如何在单独的布局中使用webView,例如,在对话框中调用我需要使用dialog.findViewById(R.id.webView1)或在main中只使用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();
}
});
}
});
谢谢!!!!
答案 0 :(得分:0)
为什么要从其他活动启动一个Activity的WebView。
最好从“imgDialog”开始包含带有WebView的活动。
并在该intent的附加内容中发送URL字符串。
在下一步中使用从intent获取的URL字符串加载webview。
答案 1 :(得分:0)
试试这个。希望这会对你有所帮助
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);
}
}