Null Pointer in Webview Fragment weshalb?

  • Antworten:6
  • Bentwortet
Gerhard P.
  • Forum-Beiträge: 46

02.06.2014, 23:50:55 via Website

Weshalb bekomm ich einen NullPointer bei "
viewc.findViewById(R.id.progressBar); "

Was übersehe ich? Danke für die Hilfe

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;



public class FragmentC extends Fragment {

    View viewc;
    WebView webViewc;
    ProgressBar progressBarc;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        viewc = inflater.inflate(R.layout.fragment_c, container, false);

        progressBarc = (ProgressBar) viewc.findViewById(R.id.progressBar);
        webViewc = (WebView) viewc.findViewById(R.id.mein);
        webViewc.setWebViewClient(new WebViewClient());
        webViewc.getSettings().setJavaScriptEnabled(true);
        webViewc.getSettings().setBuiltInZoomControls(false);
        webViewc.getSettings().setUseWideViewPort(true);
        webViewc.getSettings().setLoadWithOverviewMode(true);
        webViewc.setWebChromeClient(new CustomWebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                progressBarc.setVisibility(View.VISIBLE);
                progressBarc.setProgress(progress);
                if (progress == 100) {
                    progressBarc.setVisibility(View.GONE); // Make the bar disappear after URL is loaded
                }
            }
        });


        progressBarc.setVisibility(View.VISIBLE);
        webViewc.loadUrl("http://www.meine");

        return viewc;
    }




    private class CustomWebChromeClient extends WebChromeClient {


    }

}

Antworten
Steffen S.
  • Forum-Beiträge: 63

03.06.2014, 07:32:44 via App

hallo, zeig mal die Layout XML Datei.

Antworten
Gerhard P.
  • Forum-Beiträge: 46

05.06.2014, 13:14:42 via Website

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android&quot;
xmlns:tools="http://schemas.android.com/tools&quot;
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="de.gerpue.meineapp.FragmentC">

&lt;!-- TODO: Update blank fragment layout --&gt;
&lt;TextView
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:text=&quot;@string/title_section3&quot; /&gt;

&lt;WebView
    android:id=&quot;@+id/mein&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;&gt;
    &lt;/WebView&gt;

&lt;ProgressBar
    style=&quot;?android:attr/progressBarStyleLarge&quot;
    android:layout_width=&quot;wrap_content&quot;
    android:layout_height=&quot;wrap_content&quot;
    android:id=&quot;@+id/progressBar&quot;
    android:layout_gravity=&quot;center&quot; /&gt;

</FrameLayout>

— geändert am 05.06.2014, 13:25:42

Antworten
Martin
  • Forum-Beiträge: 756

05.06.2014, 18:14:22 via App

In welcher Zeile ist (LogCat) der Fehler?

— geändert am 05.06.2014, 18:14:38

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

05.06.2014, 18:55:52 via Website

ruf mal:

getView().findViewById(bla)

auf.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Gerhard P.
  • Forum-Beiträge: 46

06.06.2014, 14:29:04 via Website

Mac Systems

ruf mal:

getView().findViewById(bla)

auf.

dann zerschießt er mir alles ...

Die App läuft ja, er hinterlegt denn Code nur gelb/orange und Zeigt diese Meldung an!

in Zeile 28 kommt: Methode invocation (viewc.findViewById(R.id.progressBar) ) may produce java.lang.NullPointerExeption...

Nicht aber im ersten Fragment .... nur im Zweiten und Dritten!

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.06.2014, 16:31:27 via Website

gibt es im 2 und dritten Fragment ein XML Element das Progress bar heißt?
Sonst musst du überprüfen welches Fragment gerade aktiv ist.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten