Hallo, ich möchte meine zeichenview alle drei Sekunden aktualisieren.
Ich habe hier zwei Klassen.
MainActivity.java und
ZeichenView.java
In der ZeichenView wird natürlich etwas gezeichnet und das möchte ich alle drei Sekunden aktualisieren.
Dazu habe ich in der MainActivity.java einen Thread eingefügt. So sieht meine MainActivity.java aus:
Wenn ich die App starte bekomme ich fogende Fehlermeldung.
"android.view.ViewRoot$CalledFromWrongThreadException: Only the original Thread that created a view hierarchy can touch its views."
Was mache ich falsch?
estartu
Ich habe hier zwei Klassen.
MainActivity.java und
ZeichenView.java
In der ZeichenView wird natürlich etwas gezeichnet und das möchte ich alle drei Sekunden aktualisieren.
Dazu habe ich in der MainActivity.java einen Thread eingefügt. So sieht meine MainActivity.java aus:
Java:
public class MainActivity extends Activity {
private ZeichenView zview;
private Runnable r;
private Thread t;
private volatile boolean keepRunning;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
zview = new ZeichenView(this);
zview.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 600));
//zview.setBackgroundColor(255);
zview.setBackgroundColor(Color.WHITE);
LinearLayout layout = (LinearLayout) findViewById(R.id.linearlayout1);
layout.addView(zview);
r = new Runnable(){
@Override
public void run(){
while (keepRunning){
zview.invalidate();
try{
Thread.sleep(3000);
} catch (InterruptedException e) {
}
}
}
};
}
@Override
protected void onStart() {
super.onStart();
t = new Thread(r);
keepRunning = true;
t.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Wenn ich die App starte bekomme ich fogende Fehlermeldung.
"android.view.ViewRoot$CalledFromWrongThreadException: Only the original Thread that created a view hierarchy can touch its views."
Was mache ich falsch?
estartu