Threads , 2 Klassen 1 Layout?

  • Hallo zusammen,


    So langsam verzweifel ich.
    Mein problem ist ich habe eine kleines Programm geschrieben das ein auto steuern soll.
    Zudem wird über ein Webview ein Bild angezeigt das immer neu geladen wird.


    Das ganze funktioniert in einem Thread wunderbar.
    Mein Problem ist aber das der Webview sich irgendwann nicht mehr neu läd.
    Ich hab mich deshalb dazu entscheiden mit 2 Threads zu arbeiten.
    Stark gekürzt sieht das dann so aus



    Das funktioniert es wird das Layout steuerung geladen!


    Die Klasse Kamera sieht dann so aus


    Wenn ich diese Zeile weglasse gibt es keinen Fehler sobald die Zeile drin ist schmiert das programm ab


    Java
    mWebView=(WebView)findViewById(R.id.webView1);


    Muss ich denn in der Klasse Kamera irgendwie das Layout nochmal zuweisen oder was mach ich falsch?

  • Schau dir doch mal deine Fehlerausgabe in der LogCat an. Ansonsten einen try{}catch() Block dumlegen und dann den Fehler ausgeben lassen, damit nicht alles direkt wegschmiert ^^


    Ich löse Threads immer mit der extra dafür vorgesehenen Klasse AsyncTask :) Die Google-Programmiere haben da was echt schönes gebastelt.
    http://developer.android.com/r…android/os/AsyncTask.html


    Ich vermute, dass der Fehler darin liegt, dass du in einem Thread nicht die View eines Objektes verändern darfst. Das Gleiche ist mir auch bei einer Implementation über AsynTasks passiert. Da wollte ich in der Methode doInBackground() eine View ändern, aber erlaubt ist es nur in onPostExecute().


    Denke, dass sollte dir Helfen.

  • Hi,


    Falls es sich bei deiner Fehlermeldung um eine NullPointerException handelt hängt deine R.id.webView1 offenbar im Layout R.layout.steuerung. Somit ist die WebView dann in der Activity Kamera wohl null, weil das Element nur existiert solang du dich in der Activity dafür befindest. Es mag daran liegen, dass dein Code stark gekürzt ist, aber wieso genau erbt deine Klasse Kamera von einer Activity? Schaut aus wie ein normaler Thread, könnte man doch auch direkt davon erben lassen und implements Runnable weg lassen.


    Gruß,
    matze

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!