一般用webview加载网址手机都会自动跳转到自带的浏览器中 ,如果为了一些效果想要不去跳转到浏览器 那就要给自己的webview加上客户端
添加客户端代码
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
整体代码如下
package com.example.popupwindow_01;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.PopupWindow;
public class MainActivity extends AppCompatActivity {
private View view;
private PopupWindow popupWindow;
private WebView webView;
private String urlString = "http://www.baidu.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = LayoutInflater.from(this).inflate(R.layout.window_layout, null);
webView = ((WebView) view.findViewById(R.id.webView1));
/**
* webView 加载的时候 会跳到手机自带的浏览器
* 给自己定义个webview添加客户端
*/
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
webView.loadUrl(urlString);
//实例化popupwindow
popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(getResources().getDrawable(R.mipmap.ic_launcher));
//设置点击外部 是否自动关闭
popupWindow.setFocusable(true);
//点击外部是否关闭
popupWindow.setOutsideTouchable(true);
}
public void textClick(View view) {
if (popupWindow.isShowing()) {
popupWindow.dismiss();
} else {
popupWindow.showAsDropDown(view, 0, 0);
popupWindow.showAtLocation(view, Gravity.CENTER, 100, 100);
}
}
}