Описание:
Ранее я опубликовал статью для 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 URlshould 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 .

