program_language 및 궁금한것/Android Studio

안드로이드 뒤로가기키 비활성화 setEnabled

jinsiri 2018. 8. 1. 21:48

한참을 찾았다. 웹뷰 사용시 페이지가 없을때 뒤로가기 앞으로가기 비활성 하는 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 이벤트 장착
        webview.setWebViewClient(new MyBrowser());
        WebSettings settings = webview.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setBuiltInZoomControls(true);
 
        btn_move.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String url = et_url.getText().toString();
                if (url != null && url.length() > 0) {
                    webview.loadUrl(url);
                }
            }
        });
cs

우선 이렇게 웹뷰 이벤트 장착 후 


1
2
3
4
5
6
7
8
9
10
11
btn_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (webview.canGoBack()) {webview.goBack();} else {finish();}
            }});
        
        btn_forward.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (webview.canGoForward()) {webview.goForward();}
            }});
cs


뒤로가기 앞으로 가기 기능을 부여해주고



1
2
3
4
5
6
7
8
9
10
11
webview.setWebViewClient(new WebViewClient() {
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }
 
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(webview, url);
                btn_back.setEnabled(view.canGoBack());
                btn_forward.setEnabled(view.canGoForward());
            }
        });
cs

끝!  이게 핵심이다. 웹뷰에서 뒤로가기 앞으로가기 페이지가 없을시에 Enabled이 된다. 

반응형