我有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);
}
}