mit OnClickListener abfragen, wie lange ein Button gedrückt wird?

  • Ich weiß nicht ob diese Methode besser ist, bzw ich find sie besser




  • Danke für den übersichtlichen Code, denke mit vorkauen hat das noch nix zutun, zumindest nicht für nen Noob, versuch mich nun schon den dritten Tag ander Problemlösung und komme nicht weiter.
    Ohne solche Lichtblicke wie nachvollziehbare Codeschnipsel ist es schierunmöglich sich hier ein paar Grundkenntnisse anzugeignen, reines Googlen treibteinem hier zum Wahnsinn, vor allem wenn’s ohne Erfolg ist.


    Nun hab nun den neuen Code eingebaut und das mit den Zeiten funktioniert Tadellos,


    nur bin ich leider immer noch überfordert mit meine eingentlichem Problem mein View so lange zu verscheiben bis der Button losgelassen wird.


    Der Button wird ja bereits in einer anderen Farbe solage er gedrückt wird angezeit, kann man hier nix abgreifen ?


    wäre ein anderer Lösungsansetz für mein Problem eine Service-Klasse?


    schmeiß hier langsam das Handtuch und bau ein Osternest.

  • Mach dir ein WordDoc und notier die Code-Beispiele wie if anwendungen oder sowas ...


    Was du könntest das View in den onTimeTouchListener übergeben

    Java
    public .... (View ... v) { 
    //Aufruf 
    int index = 0 // Position des Items
    v[index]
     }


    dann machst du eine Funktion in der du es bei 'default' bewegst
    :D
    Und somit ungehst du das problem mit den UI-Block



    Für die Grundlagen ist die Seite ziehmlich gut, find ich http://www.tutorialspoint.com/android/index.htm

  • Problem nun endlich gelöst!


    Funktioniert nun tadellos mit einem Handler.


    Hatte das alles bereits, ich hatte nur für die Handler.class eine eingene Datei erstellt, und konnte daraus dann nicht die Methode der Hautpdatei starten. ???


    Nun habe ich das einfach alles in die selbe Datei geschreiben und siehe da es funktioniert!!!!



    Nochmals Danke für die Hilfestellungen

  • Hier der Aufruf:


    Code
    if (v == findViewById(R.id.vor) && (me.getAction() == MotionEvent.ACTION_DOWN)) {
    			//oben = oben - 5;
    			wert = 1;
    			new Thread(new Task()).start();
    
    
    else if (v == findViewById(R.id.vor) && (me.getAction() == MotionEvent.ACTION_UP)){
    			wert = 0;
    			spielStarten("vor", 0);	   	
    			}

    und hier der Handler


    Aber was müsste ich ändern, damit der Handler auch aus der anderen Datei funktionieren würde ?
    Denn ein Thread funktioniert, solange er nicht auf die UI Elemente zugreift.

  • In onTouch kannst du mit z.B in Action_Down Anfangen die zeit zu stoppen und bei Action_Up aufhören. Wichtig ist das deine onTouch() Methode true zurückgibt, weil den Fehler hab ich mal gemacht wenn false zurückgegeben wird funktioniert das mit den events nicht !


    Hier mal Beispiel Code :



    Der long time ist dann die Zeit in Millisekunden wie lange der Knopf gedrückt wurde.

  • was macht ihr denn immer mit zeiten?
    für dieses problem braucht ihr keine zeiten.


    So wie ich das verstanden habe, will er einfach dass das auto losfährt wenn er den button drückt und stoppt wenn der button losgelassen wird. Dabei müsst ihr einfach nur in einem Switch case in einem OnTouchListener, abfragen ob der Callback mit action Down oder mit action Up aufgerufen wurde.


    PS: wenn ihr doch aus irgendeinem Grund zeiten braucht, könnt ihr ja innerhalb des case blocks die jeweiligen Zeiten mittracken, so wie ich es schon oben erklärt habe, und wie nic es gerade nochmal gepostet hat.

Jetzt mitmachen!

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