[英]Adding a ProgressBar into Webview - Android
那里也有類似的問題,但是我是一個新手,並且因為每個人都有不同的編碼風格而感到困惑...我希望在“啟動畫面”之后顯示進度條,而不是在白色屏幕上顯示10秒鍾,而每次點擊鏈接...
我不知道該如何實施? 我沒有使用webchromeclient或其他任何東西。 還在學習。 這是我的代碼;
XML中的ProgressBar;
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="23dp"
android:layout_marginTop="20dp"
android:indeterminate="false"
android:max="100"
android:minHeight="50dp"
android:minWidth="200dp"
android:progress="1" />
我的Java代碼;
public class SecondActivity extends Activity {
private WebView myWebView;
private ProgressBar progressBar;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondlayout);
String url = "http://ythaber.com/";
myWebView = (WebView) this.findViewById(R.id.webView1);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
myWebView.setWebViewClient(new WebViewClient());
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl(url);
myWebView.getSettings().setLoadsImagesAutomatically(true);
}
@Override
// Detect when the back button is pressed
public void onBackPressed() {
if (myWebView.canGoBack())
myWebView.goBack();
else if (myWebView.canGoForward())
myWebView.goForward();
}
}
謝謝DG
像這樣實現: onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
web_view = (WebView) findViewById(R.id.web_view);
pd = new ProgressDialog(Activity.this);
pd.setMessage("Please wait Loading...");
pd.show();
web_view.setWebViewClient(new MyWebViewClient());
web_view.setWebViewClient(new WebViewClient());
web_view.getSettings().setJavaScriptEnabled(true);
web_view.getSettings().setLoadsImagesAutomatically(true);
web_view.loadUrl("ur site name");
}
WebViewClient
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
if (!pd.isShowing()) {
pd.show();
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
System.out.println("on finish");
if (pd.isShowing()) {
pd.dismiss();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.