- Forum-Beiträge: 180
03.04.2014, 20:37:49 via Website
03.04.2014 20:37:49 via Website
Folgendes:
Ich habe einpaar tabs die mit fragments laufen und in 1nem tab habe ich eine webview die einwandfrei funktioniert ....... nur möchte ich dass befor die seite kommt ein ladefenster ist wie es jeder kennt bis die seite geladen ist .... den code dazu hab ich auch schon geschrieben ..... 1nen für die webview und 1nen für die progressbar .... wie muss ich tun dass wenn das fragment mit der webview aufgerufen wird dazu noch den code für die progressbar nützt ..... oder kann ich einen code in der webviewfragment java zusammen schreiben dass es gar keine 2. java braucht?
Hier die codes
Website.java:
2import android.support.v4.app.Fragment;
3import android.view.LayoutInflater;
4import android.view.View;
5import android.view.ViewGroup;
6
7import android.webkit.WebView;
8import android.webkit.WebViewClient;
9import android.widget.LinearLayout;
10
11
12
13 public class Website extends Fragment {
14
15 private WebView webView;
16 private Bundle webViewBundle;
17
18 @Override
19 public View onCreateView(LayoutInflater inflater, ViewGroup container,
20 Bundle savedInstanceState) {
21
22 LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.webview,
23 container, false);
24
25 webView = (WebView) ll.findViewById(R.id.webView1);
26 webView.setWebViewClient(new WebViewClient());
27 webView.getSettings().setSupportZoom(true);
28 webView.getSettings().setBuiltInZoomControls(true);
29
30
31
32
33 if (webViewBundle == null) {
34 webView.loadUrl("http://www.hak-lienz.tsn.at/");
35 } else {
36 webView.restoreState(webViewBundle);
37 }
38
39 return ll;
40
41 }
42 @Override
43 public void onPause() {
44 super.onPause();
45
46 webViewBundle = new Bundle();
47 webView.saveState(webViewBundle);
48 }
49
50
51
52 }
und hier der code der Progressbar:
Websiteloader.java:
2import android.app.ProgressDialog;
3import android.content.Context;
4import android.graphics.Bitmap;
5import android.view.View;
6import android.webkit.WebView;
7import android.webkit.WebViewClient;
8
9@SuppressLint("SetJavaScriptEnabled")
10public class Websiteloader extends WebView {
11 private ProgressDialog pgBar = null;
12 private Context ctx;
13 public Websiteloader(Context context) {
14 super(context);
15 this.clearCache(true);
16 this.clearFormData();
17 this.clearHistory();
18 this.getSettings().setJavaScriptEnabled(true);
19 this.getSettings().setUserAgentString(null);
20 this.requestFocus(View.FOCUS_DOWN);
21 this.setWebViewClient(new Websiteloader.CustomWebViewClient());
22
23 this.pgBar = new ProgressDialog(context);
24 this.pgBar.setMessage("Loading...");
25 setCtx(context);
26
27
28 }
29
30 public Context getCtx() {
31 return ctx;
32 }
33
34 public void setCtx(Context ctx) {
35 this.ctx = ctx;
36 }
37
38 private class CustomWebViewClient extends WebViewClient {
39
40 @Override
41 public void onPageStarted(WebView view, String url, Bitmap favicon) {
42 super.onPageStarted(view, url, favicon);
43 if (!Websiteloader.this.pgBar.isShowing()) {
44 Websiteloader.this.pgBar.show();
45 }
46 }
47
48 @Override
49 public void onPageFinished(WebView view, String url) {
50 super.onPageFinished(view, url);
51 if (Websiteloader.this.pgBar.isShowing()) {
52 Websiteloader.this.pgBar.dismiss();
53 }
54 }
55
56 @Override
57 public boolean shouldOverrideUrlLoading(WebView view, String url) {
58 try{
59
60 view.loadUrl(url);
61
62 }catch(Exception ex){
63
64 }
65 return true;
66 }
67
68 }
69
70}
MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.