1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. husvun41, 25.10.2010 #1
    husvun41

    husvun41 Threadstarter Gast

    Hallo Leute!

    Ich habe folgendes Problem:
    Ich habe aus zwei Buttons und einem EditText ein Steuerelement a la NumericUpDown gebastelt.

    Der Wert verändert sich auch wie gewünscht beim Klicken der Buttons.
    Jedoch schaffe ich es einfach nicht, dass bei langem Halten eines Buttons der Wert sich gleichmäßig schnell verändert. (Also lange halten bis z.B. 100 erreicht wurde).

    Ich hoffe, ihr könnt mir helfen.

    Bis dann, IchBinzz
     

    Anhänge:

  2. Fr4gg0r, 25.10.2010 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    private final Handler handler = new Handler();
    private boolean pressing;
    private int value;
    private EditText counter;
    private final Runnable increase = new Runnable(){
    public void run(){
    value++;
    counter.setText(Integer.toString(value);
    if(pressing)handler.postDelayed(800, this);
    }
    }
    ...

    public void onTouch(View v, MotionEvent event){
    switch(event.getAction()){
    case MotionEvent.ACTION_DOWN:
    pressing = true;
    handler.post(increase);
    break;
    case MotionEvent.ACTION_UP:
    pressing = false;
    break;
    }
    }
     
  3. husvun41, 25.10.2010 #3
    husvun41

    husvun41 Threadstarter Gast

    Danke!

    Funktioniert nach kleinen Änderungen wunderbar!

    Kleine Frage hinterher:
    Wie kann ich den Button "aufblinken" lassen?
    Also: ACTION_DOWN: farbig ... ACTION_UP: grau, wie bei normalen OnClick Events.

    Ich habs so probiert: (funzt aber nicht)
    Code:
    public boolean onTouch(View v, MotionEvent event) {
            [...]
            
            switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    pressing = true;
                    handler.post(increaseDecrease);
                    [COLOR=Red]return false;[/COLOR]
                case MotionEvent.ACTION_UP:
                    pressing = false;
                    delay = 900;
                    [COLOR=Red]return true;[/COLOR]
                default: 
                    [COLOR=Red]return true;[/COLOR]
            }
        }
     
  4. Fr4gg0r, 25.10.2010 #4
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    hast du versucht immer true zurückzugeben?
     
  5. husvun41, 25.10.2010 #5
    husvun41

    husvun41 Threadstarter Gast

    Naja, das läuft auf das selbe hinaus, wie ich es davor hatte:

    Code:
    ...
            switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    pressing = true;
                    handler.post(increaseDecrease);
                    break;
                case MotionEvent.ACTION_UP:
                    pressing = false;
                    delay = 900;
                    break;
            }
            return true;
    }
    Es ist nur so, dass mein Button, wenn man kurz oder lange drückt, die ganze Zeit nur grau bleibt.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung Freitag um 23:01 Uhr
[OFFEN] Probleme mit Action Floating Button Android App Entwicklung 27.05.2017
[OFFEN] Android Studio - Apk-Generierung dauert sehr lange Android App Entwicklung 26.05.2017
[ERLEDIGT] Buttontext per klick ändern Android App Entwicklung 14.03.2017
SnackBar Action Button wird nicht an den unteren Rand gesetzt Android App Entwicklung 07.03.2017
Der Zurück-Button wird nicht angezeigt Android App Entwicklung 23.01.2017
Mail von Button aus mit Standard-Mail-App senden Android App Entwicklung 21.01.2017
Button Titel bei Klick ändern Android App Entwicklung 17.01.2017
Button positioniert sich immer über Tastatur Android App Entwicklung 13.01.2017
App stürzt beim Button Klick ab Android App Entwicklung 12.01.2017
Du betrachtest das Thema "Steuerelement a la NumericUpDown - Button lange halten" im Forum "Android App Entwicklung",