Описание:
Ранее я опубликовал статью для Android — пример WebViewClient, где мы обсуждали, как загружать URL-адреса внутри приложения вместо открытия собственного браузера.
Теперь рассмотрим случай, когда мы хотим включить индикатор выполнения, чтобы показать процесс загрузки. В то же время мы можем либо показать ProgressDialog, либо включить ProgressBar в макет XML.
— Если мы включим ProgressBar, то мы должны сделать его НЕВИДИМЫМ или УДАЛЕНЫ, когда загрузка страницы будет завершена
— И если мы отображаем ProgressDialog, то мы должны отклонять его всякий раз, когда загрузка страницы заканчивается.
Итак, в этом уроке мы собираемся отобразить ProgressBar. Просто проверьте оснастку 2, где ProgressBar невидим, поскольку мы сделали его невидимым.
Выход:
Замечания:
Перед внедрением этого решения убедитесь, что вы добавили разрешение INTERNET в свой файл AndroidManifest.xml.
1
2
|
< uses-permission android:name = "android.permission.INTERNET" > </ uses-permission > |
Решение:
WebViewClientDemoActivity.java
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package com.paresh.webviewclientdemo; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; /* * Demo of creating an application to open any URL inside the application and clicking on any link from that URl should not open Native browser but that URL should open in the same screen. - Load WebView with progress bar */ public class WebViewClientDemoActivity extends Activity { /** Called when the activity is first created. */ WebView web; ProgressBar progressBar; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); web = (WebView) findViewById(R.id.webview01); progressBar = (ProgressBar) findViewById(R.id.progressBar1); web.setWebViewClient( new myWebClient()); web.getSettings().setJavaScriptEnabled( true ); } public class myWebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super .onPageStarted(view, url, favicon); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true ; } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super .onPageFinished(view, url); progressBar.setVisibility(View.GONE); } } // To handle "Back" key press event for WebView to go back to previous screen. @Override public boolean onKeyDown( int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) { web.goBack(); return true ; } return super .onKeyDown(keyCode, event); } } |
main.xml
01
02
03
04
05
06
07
08
09
10
11
|
<!--?xml version="1.0" encoding="utf-8"?--> < linearlayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "vertical" > < textview android:layout_height = "wrap_content" android:layout_width = "fill_parent" android:text = "This is the demo of WebView Client" android:textsize = "20sp" android:gravity = "center_horizontal" > </ textview > < progressbar android:layout_height = "wrap_content" android:layout_width = "wrap_content" android:layout_gravity = "center" android:id = "@+id/progressBar1" > < webview android:id = "@+id/webview01" android:layout_height = "wrap_content" android:layout_width = "fill_parent" android:layout_weight = "1" > </ webview > </ progressbar ></ linearlayout > |
Загрузите полный исходный код отсюда : Android — Загрузите WebView с ProgressBar.
Отзывы и отзывы всегда приветствуются. пожалуйста
Ссылка: Android — Загрузите WebView с ProgressBar от нашего партнера JCG Пареш Н. Майяни в блоге TechnoTalkative .