안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
EditView에 입력한 데이터를 자동으로 구글검색을 하는 걸 만드는데요..
상단에 EditView가 있고 그 밑으로 WebView를 넣어놨습니다.
그리고 웹페이지를 로드중에 Progress Bar가 움직이도록 하고 싶어서 좀 찾아봤는데..
우선은.. .setWebChromeClient(new WebChromeClient() 를 이용해서
onProgressChanged() 함수를 Override 해서는 성공했습니다.
하지만 Chrome을 이용하면 검색 데이터를 클릭 시 새로운 웹브라우져로 실행이 되는데
이렇게 되지 않고 WebView에서만 계속 보여지게 하고 싶어서..
.setWebClient() 를 이용하면 WebView에서만 수행이 가능한 것 같아..
이를 이용한 Progress Bar가 생기는 것을 만들고 싶습니다.
하지만 이상하게 Progress Bar가 생기지 않네요..
소스는 다음과 같습니다.
폼로드 시
1. onCreate
public void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_PROGRESS); // onCreate()보다 먼저 수행되어야 한다.
super.onCreate(savedInstanceState);
setContentView(R.layout.spellsearch);
.....
}
2. WebView로 웹페이지 열기
private void loadURL(String url)
{
mWebView.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
mWebView.setWebViewClient(new WebViewClient()
{
public void onProgressChanged(WebView view, int progress)
{
activity.setProgress(progress * 100); // 1000으로 하면 동작 안함.
}
});
mWebView.loadUrl(url);
}//end loadURL()
EditView에 입력한 데이터를 자동으로 구글검색을 하는 걸 만드는데요..
상단에 EditView가 있고 그 밑으로 WebView를 넣어놨습니다.
그리고 웹페이지를 로드중에 Progress Bar가 움직이도록 하고 싶어서 좀 찾아봤는데..
우선은.. .setWebChromeClient(new WebChromeClient() 를 이용해서
onProgressChanged() 함수를 Override 해서는 성공했습니다.
하지만 Chrome을 이용하면 검색 데이터를 클릭 시 새로운 웹브라우져로 실행이 되는데
이렇게 되지 않고 WebView에서만 계속 보여지게 하고 싶어서..
.setWebClient() 를 이용하면 WebView에서만 수행이 가능한 것 같아..
이를 이용한 Progress Bar가 생기는 것을 만들고 싶습니다.
하지만 이상하게 Progress Bar가 생기지 않네요..
소스는 다음과 같습니다.
폼로드 시
1. onCreate
public void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_PROGRESS); // onCreate()보다 먼저 수행되어야 한다.
super.onCreate(savedInstanceState);
setContentView(R.layout.spellsearch);
.....
}
2. WebView로 웹페이지 열기
private void loadURL(String url)
{
mWebView.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
mWebView.setWebViewClient(new WebViewClient()
{
public void onProgressChanged(WebView view, int progress)
{
activity.setProgress(progress * 100); // 1000으로 하면 동작 안함.
}
});
mWebView.loadUrl(url);
}//end loadURL()




브라우져가 새로 열리지 않고 웹뷰에 보이게 하고 싶으시면 webviewClient에서 shouldoverriding어쩌고 메소드를 쓰세요.
progressbar가 타이틀영역에서 보이게 하고 싶으신거 맞죠?