///////////////////////////////// java
package com.android.IncoadApp;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
public class LinkActivity extends Activity {
final Activity activity = this;
ProgressDialog mProgress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_url);
Button b0 = (Button) findViewById(R.id.Button00);
Button b1 = (Button) findViewById(R.id.Button01);
Button b2 = (Button) findViewById(R.id.Button02);
Button b3 = (Button) findViewById(R.id.Button03);
Button b4 = (Button) findViewById(R.id.Button04);
final WebView urlwebview = (WebView)findViewById(R.id.webview);
urlwebview.setWebViewClient(new urlwebviewClient());
urlwebview.getSettings().setJavaScriptEnabled(true);
b0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
urlwebview.loadUrl("http://www.naver.com");
}
});
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
urlwebview.loadUrl("http://www.daum.net");
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
urlwebview.loadUrl("http://www.nate.com");
}
});
b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
urlwebview.loadUrl("http://www.yahoo.com");
}
});
b4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
public class urlwebviewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (mProgress == null) {
mProgress = new ProgressDialog(activity);
mProgress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//mProgress.setTitle("Loading...");
mProgress.setMessage("로딩중입니다. 잠시기다려 주십시오.");
//mProgress.setCancelable(false);
//mProgress.setButton("취소", new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int whichButton) {
// mProgress.dismiss();
// }
//});
mProgress.show();
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Loading Error" + description, Toast.LENGTH_SHORT).show();
if (mProgress.isShowing()) {
mProgress.dismiss();
}
}
@Override
public void onPageFinished(WebView view, String url) {
if (mProgress.isShowing()) {
mProgress.dismiss();
}
}
}
}
//////////////// xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/Button00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="네이버"
android:layout_weight="1"
android:textSize="8pt"/>
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="다음"
android:layout_weight="1"
android:textSize="8pt"/>
<Button
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="네이트"
android:layout_weight="1"
android:textSize="8pt"/>
<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="야후"
android:layout_weight="1"
android:textSize="8pt"/>
<Button
android:id="@+id/Button04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="종료"
android:layout_weight="1"
android:textSize="8pt"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp" />
</LinearLayout>
</LinearLayout>
위와같이 작성후 실행해서 아무버튼이나 한번 클릭하면 정상적으로 로딩중 표시가 잘 나옵니다.
그런데 다른 버튼을 클릭하면 로딩중 표시가 안보이네요.. 해당 엑티비티에서 한번만 실행되고 마는거 같습니다.
버튼 클릭시 마다 로딩중 표시를 하고 싶은데요.. 어떻게 해야 하나요..(초보라서요.. 예제코드로 보여주심 감사하겠습니다.)
로딩 되는 코드만 따로 빼서 작업해야하나요?
AsyncTask 사용하면 뭐 된다고 하는거 같은데요.. 안드로이드는 예제만 보고 공부중이라 뭐가 뭔지 모르겠네요..




형반가워요 프로그래스 바를 계속 사용할수있도록 바꿔보면 된느것 같아요
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
mProgress = new ProgressDialog(Main.this);
mProgress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgress.setMessage("로딩 중입니다. 잠시 기다려주세요");
mProgress.setProgress(0);
mProgress.setMax(100);
mProgress.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
try{
if (mProgress.isShowing()) {
mProgress.cancel();
}
}catch (Exception e) {
// TODO: handle exception
}
}