| |||||||
Das Thema "Button Click" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 13.11.2010
Beiträge: 114
Abgegebene Danke: 0
Erhielt 11 Danke für 11 Beiträge
| Habe mir das so gedacht, dass folgende Methode aufgerufen wird, wenn der Button geklickt wird: Code: public void aendern(){
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.p1));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.p2));
}
}).start();
} android.view.ViewRoot$CalledFromWrongThreadExcepti on: Only the original thread that created a view hierarchy can touch its views. Wie kann ich das Ganze besser lösen? |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
Stichworte sind: UI Thread, Handler, AsyncTask damit hast du alles was du brauchst
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #4 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
aber deine antwort wird ihm nicht weiterhelfen. dann schaltet er die seite im thread um und bekommt genau den gleichen fehler...
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #5 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 13.11.2010
Beiträge: 114
Abgegebene Danke: 0
Erhielt 11 Danke für 11 Beiträge
|
Müsste das Ganze dann per AsyncTask so aussehen? Code: class aendern1 extends AsyncTask {
protected void onPostExecute() {
layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.p1));
}
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
class aendern2 extends AsyncTask {
protected void onPostExecute() {
layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.p2));
}
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
} Code: new aendern1().execute(); new aendern2().execute(); So passiert nämlich gar nichts. |
| | |
| | #6 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
die tasks sehen schonmal ganz gut aus du rufst aber einfach beide tasks nacheinander auf und wartest jeweils 1 sek. von daher ist die gesamt zeit genau 1 sek rum mal task 2 im onPostExecute auf, dann wirds besser werden. btw: informier dich mal nach Java coding standards. das machts für dich und für uns einfacher
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #7 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 13.11.2010
Beiträge: 114
Abgegebene Danke: 0
Erhielt 11 Danke für 11 Beiträge
|
Da immer noch nichts passiert ist, habe ich mal das Ändern des Backgrounds in die doInBackground(Object... params){} Methode geschrieben. Infolgedessen bekam ich wieder folgenden Fehler: Caused by: android.view.ViewRoot$CalledFromWrongThreadExcepti on: Only the original thread that created a view hierarchy can touch its views. Edit: Habe gerade gesehen, dass das auch so seine Richtigkeit hat. Aber ich frage mich dennoch, warum das Bild nicht geändert wird... Edit2: Habe es doch hinbekommen...Lag wohl irgendwie alles an der Parameterübergabe. Geändert von Peter123 (19.12.2011 um 19:42 Uhr) |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Kamera "stopp button", ok, aber kann man "pause button" auch haben? | testt25 | Samsung Galaxy S Plus (I9001) Forum | 0 | 14.12.2011 21:37 |
| Ton wiedergabe nach Button Click | Marcstefan | Android App Entwicklung | 2 | 29.09.2011 17:06 |
| Lock Button vs. Volume Button | Goldbub | Motorola Defy Forum | 4 | 17.09.2011 10:25 |
| one click root und one click lag fix über market | Claus.D | Root / Hacking / Modding für Samsung Galaxy S | 5 | 06.11.2010 11:31 |
| Warum nur einen "Danke" Button und keinen "Blödsinn" Button? | derbert | Anregungen | 10 | 30.04.2010 03:24 |