急,几天没弄好,真心求助大家帮忙了。关于WebView在新的Activity打开的问题。 点击某个标题后记录标题的参数比如标题1 =1.HTML 标题2 =2.HTMLwebView.loadUrl("xxx.com"+标题2); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用了。但HTML里的内容要么不显示。要然一打开MainTabActivity就直接跳转到Body那个窗口。不是应该在shouldOverrideUrlLoading里加个什么判断。看是不是需要跳转呢?我的代码是这样的。protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cs); final WebView myWebView = (WebView) findViewById(R.id.webview1) myWebView.setWebViewClient(new WebViewClient()); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.requestFocus(); myWebView.loadUrl("http://wap.*****.net"); myWebView.setWebViewClient(new WebViewClient() public boolean shouldOverrideUrlLoading(final WebView view, final String url) { Intent i=new Intent(MainTabActivity.this, Body.class); i.putExtra("SourceUrl",url); startActivityForResult(i, 0); //myWebView.loadUrl("http://wap.*****.net"); return true; } }); } 是不是应该在shouldOverrideUrlLoading里加个什么判断。 你是怎么加载html,自己拼的字符串还是本地的html文件,我觉得js的问题可能很大,不然应该不会有你说的问题,多贴出来一些 加载的HTML是我网站的WAP手机版。都是很普通的<a href="forum.php?****>12345</a>超链接。我的JAVA代码全部在这里。public class MainTabActivity extends Activity { ProgressDialog pd; WebView wv; Handler handler; String tdurl; String bodyurl; String jsid; ProgressBar progressBar; private ValueCallback<Uri> mUploadMessage; private final static int FILECHOOSER_RESULTCODE=1; @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { if(requestCode==FILECHOOSER_RESULTCODE) { if (null == mUploadMessage) return; Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData(); mUploadMessage.onReceiveValue(result); mUploadMessage = null; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); super.onCreate(savedInstanceState); setTheme(R.style.dialog); tdurl="http://www.baiseren.net/"; init();//执行初始化函数 loadurl(wv,tdurl); Mybutton(); } public void init(){ pd=new ProgressDialog(MainTabActivity.this); pd.setProgressStyle(ProgressDialog.BUTTON_NEGATIVE); pd.setMessage("载入中..."); handler=new Handler(){ public void handleMessage(Message msg){ if (!Thread.currentThread().isInterrupted()){ switch (msg.what) { case 0: pd.show();//显示进度对话框 break; case 1: pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。 break; } } super.handleMessage(msg); } }; wv=(WebView)findViewById(R.id.webview1); WebSettings webSettings = wv.getSettings();// 使能JavaScript webSettings.setJavaScriptEnabled(true);// 使能JavaScript wv.addJavascriptInterface(this, "android");//// 添加js调用接口 wv.setWebViewClient(new WebViewClient(){// 这个方法在用户试图点开页面上的某个链接时被调用 public boolean shouldOverrideUrlLoading(final WebView view, final String url) { Intent i=new Intent(MainTabActivity.this, Body.class); i.putExtra("SourceUrl",url); startActivityForResult(i, 0); return true; }//重写点击动作,用webview载入 }); wv.setWebChromeClient(new WebChromeClient(){ public void onProgressChanged(WebView view,int progress){//载入进度改变而触发 if(progress==100){ handler.sendEmptyMessage(1);//如果全部载入,隐藏进度对话框 } super.onProgressChanged(view, progress); } //////////////////////////////////////////For Android 4.1 public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){ mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("image/*"); MainTabActivity.this.startActivityForResult( Intent.createChooser( i, "选择要使用的应用" ), MainTabActivity.FILECHOOSER_RESULTCODE); } //////////////////////////////////////////////////////////// }); } public void loadurl(final WebView view,final String url){ new Thread(){ public void run(){ handler.sendEmptyMessage(0); bodyurl=url; view.loadUrl(url);//载入网页 } }.start(); } //判断是否已经返回到最前面一而然后弹出是否退出对话框 public void onBackPressed() { WebView myWebView = (WebView) findViewById(R.id.webview1);// 加载一个网页,使用loadUrl(): if(myWebView.canGoBack()){ myWebView.goBack(); }else{ Builder builder = new Builder(MainTabActivity.this); builder.setTitle("退出确认"); builder.setMessage("确定要退出吗?"); builder.setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { MainTabActivity.this.finish(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.show(); } } } 不好意思。感谢各位。认真检查。估计真的是我的HTML有问题。 android导入第三方jar后,产生:java.lang.NoClassDefFoundError错误 Android 百度地图为什么总定位到天安门 android平板电脑 Android中关于CheckBox传递参数的问题 android4.0 keypad 的kl 何去何从? 定制android关机界面的问题 在android中如何实现新浪和QQ微博分享功能 手机hardware 测试工具 怎么可以找到程序运行产生的Log,在源代码的什么地方? 准备把安卓APP外包出去,需要注意哪些呢?求教 找不到主机程序抓取webservice的手机归属地服务 TextView赋值问题
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cs);
final WebView myWebView = (WebView) findViewById(R.id.webview1)
myWebView.setWebViewClient(new WebViewClient());
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.requestFocus();
myWebView.loadUrl("http://wap.*****.net");
myWebView.setWebViewClient(new WebViewClient()
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
Intent i=new Intent(MainTabActivity.this, Body.class);
i.putExtra("SourceUrl",url);
startActivityForResult(i, 0);
//myWebView.loadUrl("http://wap.*****.net");
return true;
}
});
}
public class MainTabActivity extends Activity {
ProgressDialog pd;
WebView wv;
Handler handler;
String tdurl;
String bodyurl;
String jsid;
ProgressBar progressBar;
private ValueCallback<Uri> mUploadMessage;
private final static int FILECHOOSER_RESULTCODE=1;
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if(requestCode==FILECHOOSER_RESULTCODE)
{
if (null == mUploadMessage) return;
Uri result = intent == null || resultCode != RESULT_OK ? null
: intent.getData();
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
super.onCreate(savedInstanceState);
setTheme(R.style.dialog);
tdurl="http://www.baiseren.net/";
init();//执行初始化函数
loadurl(wv,tdurl);
Mybutton();
}
public void init(){
pd=new ProgressDialog(MainTabActivity.this);
pd.setProgressStyle(ProgressDialog.BUTTON_NEGATIVE);
pd.setMessage("载入中...");
handler=new Handler(){
public void handleMessage(Message msg){
if (!Thread.currentThread().isInterrupted()){
switch (msg.what)
{
case 0:
pd.show();//显示进度对话框
break;
case 1:
pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
break;
}
}
super.handleMessage(msg);
}
};
wv=(WebView)findViewById(R.id.webview1);
WebSettings webSettings = wv.getSettings();// 使能JavaScript
webSettings.setJavaScriptEnabled(true);// 使能JavaScript
wv.addJavascriptInterface(this, "android");//// 添加js调用接口
wv.setWebViewClient(new WebViewClient(){// 这个方法在用户试图点开页面上的某个链接时被调用
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
Intent i=new Intent(MainTabActivity.this, Body.class);
i.putExtra("SourceUrl",url);
startActivityForResult(i, 0);
return true;
}//重写点击动作,用webview载入
});
wv.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView view,int progress){//载入进度改变而触发
if(progress==100){
handler.sendEmptyMessage(1);//如果全部载入,隐藏进度对话框
}
super.onProgressChanged(view, progress);
}
//////////////////////////////////////////For Android 4.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
mUploadMessage = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
MainTabActivity.this.startActivityForResult( Intent.createChooser( i, "选择要使用的应用" ), MainTabActivity.FILECHOOSER_RESULTCODE);
} ////////////////////////////////////////////////////////////
});
}
public void loadurl(final WebView view,final String url){
new Thread(){
public void run(){
handler.sendEmptyMessage(0);
bodyurl=url;
view.loadUrl(url);//载入网页
}
}.start();
}
//判断是否已经返回到最前面一而然后弹出是否退出对话框
public void onBackPressed() {
WebView myWebView = (WebView) findViewById(R.id.webview1);// 加载一个网页,使用loadUrl():
if(myWebView.canGoBack()){
myWebView.goBack();
}else{
Builder builder = new Builder(MainTabActivity.this);
builder.setTitle("退出确认");
builder.setMessage("确定要退出吗?");
builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainTabActivity.this.finish();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();
}
} }