为了账号安全,请及时绑定邮箱和手机立即绑定

为甚么我用android studio写这个js程序就会崩溃,去掉就可以正常运行了

是一添加WebSettings set=wv.getSettings();这个语句就会崩溃,wv是我设置的WebView名称

正在回答

2 回答

public class MainActivity extends AppCompatActivity {
private WebView wv;
    private ProgressDialog pd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }
    private void init() {
        wv=(WebView)findViewById(R.id.webView);
        wv.loadUrl("http://www.bilibili.com");
        //使得网页从WebView中打开,而不是跳转
        wv.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;

            }
        });
        //判断页面加载过程
        wv.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                if(newProgress==100){
                    closeDialog();
                }else {
                    openDialog(newProgress);
                }
            }
            private void openDialog(int newProgress) {
                //如果对话框等于空,也就是没有对话框
                if(pd==null){
                    //设定一个新的对话框
                    pd=new ProgressDialog(MainActivity.this);
                    //设置标题
                    pd.setTitle("加载中。。。");
                    pd.setIcon(R.mipmap.ic_launcher);
                    //设置对话框进度条样式,设置为横向
                    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                    //设置进度,随刷新进度改变
                    pd.setProgress(newProgress );
                    pd.show();

                }else{
                    pd.setProgress(newProgress );
                }
            }
            private void closeDialog() {
                if(pd!=null&&pd.isShowing()){
                    pd.dismiss();
                    pd=null;
                }
            }
        });
    }
    //改写前进与后退的逻辑,使得物理返回按钮默认为上一页面
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode==KeyEvent.KEYCODE_BACK){
            if(wv.canGoBack()){
                wv.goBack();
                return true;
            }else {
                System.exit(0);
            }
        }
        return super.onKeyDown(keyCode, event);
    }
}


0 回复 有任何疑惑可以回复我~

详细一点你这个,搞不懂啊

0 回复 有任何疑惑可以回复我~
#1

元素滴3579866 提问者

我把代码贴在下面了,我如果在onCreate方法中新建WebString,程序就会崩溃
2016-08-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111140    人
  • 解答问题       1560    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

为甚么我用android studio写这个js程序就会崩溃,去掉就可以正常运行了

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号