android中含有一webview,并成功载入所指的url的页面了,主程序代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1xml);
handler=new Handler()
{
public void handleMessage(android.os.Message msg) {
if(Thread.currentThread().isInterrupted()){
switch(msg.what){
case 0:
pd.show();
break;
case 1:
pd.hide();
break;
}
}
};
};
init();
loadUrl(wv, "http://nc.8ff.cn/m.php");
});
}
public void init(){
wv=(WebView) findViewById(R.id.webview1);
//可用js
wv.getSettings().setJavaScriptEnabled(true);
//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
wv.setScrollBarStyle(0);
wv.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
loadUrl(view, url);
return super.shouldOverrideUrlLoading(view, url);
}
});
wv.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
handler.sendEmptyMessage(1);
}
super.onProgressChanged(view, newProgress);
}
});
pd=new ProgressDialog(Tab1Activity.this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("数据加载中,请稍候...");
}
public void loadUrl(final WebView webView,final String url){
new Thread(){
@Override
public void run() {
handler.sendEmptyMessage(0);
webView.loadUrl(url);
}
}.start();
}
现需:在webview载入的页面中,(因为页面会含有链接),
1如果页面中的链接含thread 字母,就转到 名为th的activity中,如果页面中的链接含forum,就转到 名为fo的activity中,其它的就正常链接到子页面
这如何实现呀,thanks
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1xml);
handler=new Handler()
{
public void handleMessage(android.os.Message msg) {
if(Thread.currentThread().isInterrupted()){
switch(msg.what){
case 0:
pd.show();
break;
case 1:
pd.hide();
break;
}
}
};
};
init();
loadUrl(wv, "http://nc.8ff.cn/m.php");
});
}
public void init(){
wv=(WebView) findViewById(R.id.webview1);
//可用js
wv.getSettings().setJavaScriptEnabled(true);
//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
wv.setScrollBarStyle(0);
wv.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
loadUrl(view, url);
return super.shouldOverrideUrlLoading(view, url);
}
});
wv.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if(newProgress==100){
handler.sendEmptyMessage(1);
}
super.onProgressChanged(view, newProgress);
}
});
pd=new ProgressDialog(Tab1Activity.this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("数据加载中,请稍候...");
}
public void loadUrl(final WebView webView,final String url){
new Thread(){
@Override
public void run() {
handler.sendEmptyMessage(0);
webView.loadUrl(url);
}
}.start();
}
现需:在webview载入的页面中,(因为页面会含有链接),
1如果页面中的链接含thread 字母,就转到 名为th的activity中,如果页面中的链接含forum,就转到 名为fo的activity中,其它的就正常链接到子页面
这如何实现呀,thanks
解决方案 »
- android 开发程序同时适用于平板和手机要注意什么
- 求助,关于android内核编译
- WebView在手机上使用时发现不能加载图片。
- 请问如何知道我们发送请求后返回的数据的xml文件里的内容呢?
- 虚拟机 和 Ubuntu 已经装好,并可运行。如何见到android 画面?
- Android项目预研的总结
- 西安有没有android培训的地方,要口碑好的,本人想学
- 按Home键后,收到消息,用另一View显示出错
- 使用Camera预览显示变形问题
- 点击图片 放大,然后在图片下方出现一个 类似弹窗的布局,求大神解答
- 求助:谁知道有什么书是专门讲解android每个模块源码的。
- webview中链接需判断后再链出去,在线等
你用String的IndexOf方法不就可以了吗。。看返回值是否为-1就进行你说的操作就可以了
String url="www.badiduthread";
if(url.indexof("thread")!=-1)
{
//跳转到th
}else if(url.indexof("forum")!=-1)
{
//跳转到fo
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(url.indexOf("forum")!=-1)
{
Intent intent=new Intent();
int sIndex = url.indexOf('-');
int eIndex = url.lastIndexOf('-');
String urlL = url.substring(sIndex+1, eIndex);
intent.putExtra("urlL", urlL);
intent.setClass(Tab2Activity.this, ForumListActivity.class);
Tab2Activity.this.startActivity(intent);
//System.out.println("返回:"+super.shouldOverrideUrlLoading(view, url));
return true;
}
else
{
loadUrl(view, url);
return super.shouldOverrideUrlLoading(view, url);
}
}
});
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(url.indexOf("forum")!=-1)
{
Intent intent=new Intent();
int sIndex = url.indexOf('-');
int eIndex = url.lastIndexOf('-');
String urlL = url.substring(sIndex+1, eIndex);
intent.putExtra("urlL", urlL);
intent.setClass(Tab2Activity.this, ForumListActivity.class);
Tab2Activity.this.startActivity(intent);
//System.out.println("返回:"+super.shouldOverrideUrlLoading(view, url));
return true;
}
else
{
loadUrl(view, url);
return super.shouldOverrideUrlLoading(view, url);
}
}
});