안드로이드 개발 질문/답변
(글 수 45,052)
액티비티에 다이얼로그를 붙혀서 웹뷰가 로딩되는 동안 다이얼로그를 바로 실행할려고 합니다.
근데 어디다가 쇼다이얼로그를 해줘야하는지 잘 모르겠군요 ㅠㅠ
구글링 해봐도 바로 실행에 관해서는 안나오는데 부탁드립니다.
public class MainActivity extends Activity {
static final int ALERT_DIALOG_TEST00 = 0;
WebView mWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
showDialog(ALERT_DIALOG_TEST00);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://URL삽입");
mWebView.setWebViewClient (new HelloWebViewClient());
}
@Override
protected Dialog onCreateDialog(int id) {
super.onCreateDialog(id);
AlertDialog dlg;
switch (id) {
case ALERT_DIALOG_TEST00:
dlg = new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle("제목부분")
.setMessage("메시지출력부분.") // 메시지 text 지정
.setPositiveButton("닫기", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
break;
default:
dlg = null;
}
return dlg;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
} 



onPageStarted // 페이지 로딩 시작
onPageFinished // 페이지 로딩 끝
ps. 다이얼로그를 띄워도 되지만 타이틀에 프로그래스를 표시하는 방법도 있습니다.
//onCreate에서 setContentView 윗줄에 추가
requestWindowFeature(Window.FEATURE_PROGRESS);
//프로그래스 변경
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
setProgress(newProgress * 100);
}
});