Thread, 2 Klassen ein Layout?

  • Antworten:2
Apfel3
  • Forum-Beiträge: 4

15.04.2012, 15:56:49 via Website

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
1public class Steuerung extends Activity
2{
3
4
5
6
7
8
9 /** Called when the activity is first created. */
10 @Override
11 public void onCreate(Bundle savedInstanceState)
12 {
13
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.steuerung);
16 Thread t1 = new Thread( new Kamera() );
17 t1. start();
18 }
19}

Das funktioniert es wird das Layout steuerung geladen!

Die Klasse Kamera sieht dann so aus
1public class Kamera extends Activity implements Runnable {
2 private WebView mWebView;
3 public void run() {
4
5
6
7// public void onCreate(Bundle savedInstanceState)
8// {
9//
10//
11// super.onCreate(savedInstanceState);
12 // setContentView(R.layout.steuerung);
13
14
15
16 mWebView=(WebView)findViewById(R.id.webView1);
17// mWebView.getSettings().setJavaScriptEnabled(true);
18// mWebView.getSettings().setAllowFileAccess(true);
19// mWebView.getSettings().setPluginsEnabled(true);
20// mWebView.getSettings().setAllowFileAccess(true);
21// mWebView.getSettings().setAppCacheEnabled(true);
22// mWebView.getSettings().setDatabaseEnabled(true);
23// mWebView.getSettings().setJavaScriptEnabled(true);
24// mWebView.getSettings().setLoadsImagesAutomatically(true);
25// mWebView.getSettings().setBuiltInZoomControls(true);
26 }

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

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

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

Antworten
Maximilian O
  • Forum-Beiträge: 990

15.04.2012, 17:19:57 via Website

Hallo,
was gibt denn das LogCat aus?

Liebe Grüße Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

15.04.2012, 18:30:42 via Website

Apfel3
Muss ich denn in der Klasse Kamera irgendwie das Layout nochmal zuweisen oder was mach ich falsch?
Das Problem ist, dass du dein Runnable gleichzeitig von Activity ableitest.
Einfach ausgedrückt: Die Methoden einer Activity funktionieren nur, wenn du die Activity über das Android System startest, NICHT wenn du einfach nur
1new MyActivity()
aufrufst.

Die Lösung für dich wäre:
Realisier das Runnable als innere Klasse deine Haupt-Activity, dann kannst Du auch auf findViewById zugreifen.

— geändert am 15.04.2012, 18:36:19

Antworten