Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Button Click

Das Thema "Button Click" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 19.12.2011, 16:10   #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
Standard Button Click

Also ich möchte, wenn auf einen Button geklickt wird, dass eine Sekunde gewartet wird, dann das Hintergrundbild geändert wird, wieder eine Sekunde gewartet wird und nochmals das Bild geändert wird.

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();
    	
    }
Das Ganze funktioniert jedoch nicht und ich bekomme folgenden Fehler...:

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?
Peter123 ist offline   Mit Zitat antworten
Alt 19.12.2011, 16:21   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Button Click

Stichworte sind:

UI Thread, Handler, AsyncTask

damit hast du alles was du brauchst
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 19.12.2011, 16:34   #3 (permalink)
Android-Hilfe.de Mitglied

Modell: Nexus S

Registriert seit: 30.09.2011
Beiträge: 137
Abgegebene Danke: 8
Erhielt 35 Danke für 33 Beiträge
Standard AW: Button Click

Entweder so oder einfach mit dem ViewFlipper.
strider ist offline   Mit Zitat antworten
Alt 19.12.2011, 17:40   #4 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Button Click

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 )
swordi ist offline   Mit Zitat antworten
Alt 19.12.2011, 18:18   #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
Standard AW: Button Click

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;
		}
	}
Und dann beim Klicken:

Code:
new aendern1().execute();
new aendern2().execute();

So passiert nämlich gar nichts.
Peter123 ist offline   Mit Zitat antworten
Alt 19.12.2011, 18:46   #6 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Button Click

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 )
swordi ist offline   Mit Zitat antworten
Alt 19.12.2011, 19:14   #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
Standard AW: Button Click

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)
Peter123 ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

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




Du liest gerade: "Button Click" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.